【发布时间】:2012-09-16 17:01:10
【问题描述】:
我正在处理我的第一个项目,我需要添加一个函数作为 button_click 事件。函数应该打开默认电子邮件客户端的“发送新电子邮件”表单,为空,没有任何目的地、主题或正文,仅带有附件。
我在 stackoverflow 和 codeproject 上浏览了许多类似的教程,但无法解决。我发现类似的函数可以从代码发送消息,但不仅仅是打开一个空的电子邮件表单并附加所需的文件。但无法成功修改。
我相信也有人在寻找这种解决方案。
到目前为止我尝试的是:
protected void btnSend_Click(object sender, EventArgs e)
{
string value;
value = lstpdfList.SelectedItem.Text;
string file = "W:/" + value + ".pdf";
MailMessage message = new MailMessage();
Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
ContentDisposition disposition = data.ContentDisposition;
disposition.CreationDate = System.IO.File.GetCreationTime(file);
disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
disposition.ReadDate = System.IO.File.GetLastWriteTime(file);
message.Attachments.Add(data);
}
【问题讨论】:
-
MailMessage 是 System.Net.Mail 命名空间中的一个 .Net 类,实际上是一个没有 UI 的电子邮件客户端。如果要操作外部程序,则需要与其 API 进行交互。如果您指定支持哪些电子邮件包,通常会容易得多 - 这是您想要使用 Outlook 执行的操作的示例:stackoverflow.com/questions/6148639/…
-
哦。您的编辑显着改变了问题。您需要在浏览器中有一些客户端代码才能打开邮件包并附加文件。这有几个问题 - 例如,如果您访问了一个网站,然后继续打开您的电子邮件客户端并将文件附加到它,您会很高兴吗?这就是在默认的
<a href="mailto:">链接之外很难通过网络提供此功能的原因之一。 -
这将是一个供公司内部使用的网络应用程序(asp.net 网站)。列表框中有一个手册列表,当他们选择一个时,他们应该能够将其作为附件添加到 Outlook 中的新电子邮件表单中。你可以帮帮我吗 ?真的很重要..谢谢你
-
您的最后一条评论在我看来是一个不可能的要求。在 Web 应用程序中最接近此的方法是从服务器发送电子邮件,而不涉及任何一端的 Outlook。在这种情况下,只需按照msdn.microsoft.com/en-us/library/… 上的说明进行操作即可
-
这不是不可能,但也不是很愉快。如果您在 Intranet 环境中,您可以执行以下操作:social.msdn.microsoft.com/Forums/pl-PL/netfxjscript/thread/… 但它不太可能与 Internet Explorer 以外的任何东西一起使用。
标签: c# asp.net email attachment