Dot-Net

向 .NET 電子郵件添加附件

  • April 3, 2010

如何附加名稱非常不友好的文件(例如其中包含會話 ID 號的文件)但將其附加為另一個名稱?

有問題的文件名中包含會話 ID,以避免 Web 伺服器上的名稱衝突,但是當我將其附加到文件時,最好使用更友好的名稱。

有沒有辦法將帶有不友好名稱的文件作為另一個名稱附加,以便當使用者收到電子郵件時,他可以從名稱中看出文件的內容是什麼?我不想創建一個唯一的文件夾,只是為了將一個非唯一的文件名放入其中,以便將其簡單地附加到電子郵件中。

Dim mailMessage As System.Net.Mail.MailMessage = New System.Net.Mail.MailMessage()
mailMessage.Attachments.Add("C:\My\Code\BESI\BESI\Files\Invoice-djopyynrgek4p4qadn31dxxs.pdf", ????)

是的——你可以通過對 Attachment() 使用不同的建構子來做你想做的事情。遺憾的是,沒有一個文件名和一個單獨的名稱,但有一個文件名和一個Stream單獨的名稱。並且有一些輔助方法System.IO.File可以很容易地從文件名中獲取文件流。

Imports System.Net.Mail
Imports System.IO

Dim mailMessage as MailMessage = New MailMessage()
Dim stream as FileStream = File.OpenRead("C:\My\Code\BESI\BESI\Files\Invoice-djopyynrgek4p4qadn31dxxs.pdf")
Dim attachment as Attachment = New Attachment(stream, "FriendlyName.pdf")
mailMessage.Attachments.Add(attachment)

'Be sure to Dispose stream after you've sent the mail.

(我的 VB 語法很弱,所以可能會有一些愚蠢的錯誤,但希望我的意思很清楚,這些絕對是正確的類/方法。)

引用自:https://stackoverflow.com/questions/2570127