使用mailto发送带附件的电子邮件

时间:2011-03-08 14:08:37

标签: html

如何使用Outlook 2010发送包含附件(本地文件或Intranet中的文件)的电子邮件?

<a href="mailto:a@gmail.com?subject=my report&body=see attachment&attachment=c:\myfolder\myfile.txt">

似乎不起作用。

4 个答案:

答案 0 :(得分:57)

不,这根本不可能。 mailto:协议中没有规定它,如果可能的话,这将是一个巨大的安全漏洞。

发送文件的最佳方法,但让客户端发送我能想到的电子邮件:

  • 让用户选择文件
  • 将文件上传到服务器
  • 让服务器在上传后返回随机文件名
  • 构建mailto:链接,其中包含邮件正文中上传文件的URL

答案 1 :(得分:1)

这是不可能的&#34; mailto&#34;功能

请使用服务器端编码(C#)。确保在管理权限下打开vs。

Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.MailItem oMsg = (Microsoft.Office.Interop.Outlook.MailItem)oApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);

oMsg.Subject = "emailSubject";
oMsg.BodyFormat = Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatHTML;
oMsg.BCC = "emailBcc";
oMsg.To = "emailRecipient";

string body = "emailMessage";

oMsg.HTMLBody = "body";              
oMsg.Attachments.Add(Convert.ToString(@"/my_location_virtual_path/myfile.txt"), Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, Type.Missing, Type.Missing);

oMsg.Display(false); //In order to displ

答案 2 :(得分:1)

您可以使用SimpleMapi。这样,它将使用默认的邮件客户端进行发送,并且用户可以选择在发送之前查看邮件,就像mailto:一样。

要使用它,请添加Simple-MAPI.NET程序包(13Kb),然后运行:

var mapi = new SimpleMapi();
mapi.AddRecipient(null, address, false);
mapi.Attach(path);
//mapi.Logon(ParentForm.Handle);    //not really necessary
mapi.Send(subject, body, true);

答案 3 :(得分:-10)

这个怎么样

<FORM METHOD="post" ACTION="mailto:jburns@htmlgoodies.com" ENCTYPE="multipart/form-data">
Attachment: <INPUT TYPE="file" NAME="attachedfile" MAXLENGTH=50 ALLOW="text/*" >
 <input type="submit" name="submit" id="submit" value="Email"/>
</FORM>