2010-04-03 78 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