将附件添加到.NET电子邮件
问题描述:
如何附加非常不友好名称的文件(如具有会话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", ????)
答
是的 - 你可以通过使用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语法较弱,所以可能有一些愚蠢的错误在那里,但我希望我的意思是明确的,那些是绝对正确的类/方法使用。)
好样的!像魅力一样工作。非常感谢你。 – ChadD 2010-04-03 04:00:11