2011-03-08 174 views

回答

36

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

最好的办法发送一个文件,但在客户端发送的电子邮件,我能想到的是:

  • 让用户选择一个文件
  • 将文件上传到服务器
  • 有服务器上传后返回一个随机文件名
  • 建立一个mailto:链接包含在邮件正文中的URL上传的文件
+0

在这种情况下,我可以使用我认为的apache commons。 – Benchik 2011-03-08 14:55:35

+1

还不错,但是在服务器上会有一个所有用户文件所在的位置,这些位置需要不时地清理。也许[这种方法会为此工作](http://stackoverflow.com/questions/5760969/php-how-to-delete-a-file-from-server-after-is-read-unlink-is-executed- befor) – ejectamenta 2014-11-25 18:24:50

-5

这个怎么样

<FORM METHOD="post" ACTION="mailto:[email protected]" ENCTYPE="multipart/form-data"> 
Attachment: <INPUT TYPE="file" NAME="attachedfile" MAXLENGTH=50 ALLOW="text/*" > 
<input type="submit" name="submit" id="submit" value="Email"/> 
</FORM> 
+4

在jsfiddle上尝试过它......它只是打开一个电子邮件对话框,并用'attachfile = filename.ext&submit = Email'预填充正文。它不附加任何数据。 – 2014-06-03 20:48:44

1

这在“mailto”功能中是不可能的。

请与服务器端编码(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 
+0

我已经尝试使用mailto功能,但它不可能,所以我已经尝试了上面的代码来实现这一点。 – 2017-03-02 06:18:59

相关问题