【问题标题】:How can I connect to Default mail Client and send an attachment?如何连接到默认邮件客户端并发送附件?
【发布时间】:2012-10-19 20:45:20
【问题描述】:

我有以下选择

  1. 使用System.Net.Mail命名空间并通过SMTPClient发送邮件
  2. 专门连接到 Outlook 并添加附件
  3. 在 javascript 中使用“MailTo”函数,不添加“附件”

但它们都不适合我的要求,我需要在用户系统上的默认邮件客户端中添加附件。

有什么办法吗?

MailTo 选项 - 我可以添加附件吗?

<asp:Button ID="btnSend" Text="Send" runat="server" onClientclick="OpenMail()" />

<script type="text/javascript" language="javascript">
function OpenMail()
{    
location.href='mailto:dummy@gmail.com?subject=Message Title&body=Message Content';   
}
</script>

【问题讨论】:

  • 您目前有哪些代码示例可以向我们展示..?如果您想冒险进入万维网,这也很简单,有 1000 多个关于如何做到这一点的示例.. 尤其是使用 C#
  • 我需要将附件添加到默认邮件客户端,例如 Outlook 或任何其他邮件服务。我可以添加主题、正文但不能添加附件。
  • 文件在客户端还是服务器?由于mailto: 纯粹是客户端,如果文件在服务器上,您打算如何将文件发送到客户端?
  • Attach File Through mailto URI 的可能重复项
  • @user1208862 无法在mailto: 中使用附件

标签: c# javascript asp.net .net scripting


【解决方案1】:

如果文件在服务器上,那么您不能使用客户端的电子邮件程序自动将其作为附件发送。一些替代方案:

  1. 让客户端填写“电子邮件表单”(发件人、收件人、消息等)并使用SMTPClient从服务器发送

  2. 使用带有链接mailto:标签发送到电子邮件body中的文件

如果您尝试让用户下载文件然后使用mailto: 发送,则链接被破坏的机会太多。您不知道文件将下载到哪里,如果用户更改名称等。

为什么使用客户的电子邮件程序是一项硬性要求?

【讨论】:

  • 我已经签出了第一个选项。它不符合要求。要求是使用默认邮件客户端,而不是从网页发送邮件。
  • 第二个选项,即在电子邮件正文中发送文件的链接不会在生成的邮件中显示为附件..
  • @user1208862 如果没有用户先下载文件,您无法使用客户端的电子邮件程序从服务器发送文件。而且您不能保证文件以特定名称保存到特定位置。用户将能够从浏览器更改这两项。
  • @user1208862 关于您的第二条评论 - 因为它不是附件,所以它是收件人可以用来从服务器站点获取文件的超链接。
猜你喜欢
  • 1970-01-01
  • 2010-10-23
  • 2013-12-18
  • 1970-01-01
  • 1970-01-01
  • 2014-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多