2011-03-08 146 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

相關問題