2010-04-03 79 views
9

如何附加非常不友好名稱的文件(如具有會話Id編號的文件),但將其附加爲另一個名稱?將附件添加到.NET電子郵件

問題中的文件名稱中的會話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", ????) 

回答

19

是的 - 你可以通過使用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語法較弱,所以可能有一些愚蠢的錯誤在那裏,但我希望我的意思是明確的,那些是絕對正確的類/方法使用。)

+0

好樣的!像魅力一樣工作。非常感謝你。 – ChadD 2010-04-03 04:00:11