向.NET电子邮件添加附件

向.NET电子邮件添加附件,.net,asp.net,vb.net,smtp,email,.net,Asp.net,Vb.net,Smtp,Email,如何附加一个名称非常不友好的文件(比如一个包含会话Id号的文件),但将其作为另一个名称附加 所讨论的文件名中包含会话ID,以避免与web服务器上的名称冲突,但当我将其附加到文件时,最好使用更友好的名称 有没有一种方法可以将不友好的名称作为另一个名称附加到文件中,这样当用户收到电子邮件时,他就可以从名称中分辨出文件的内容?我不喜欢创建一个唯一的文件夹,只是为了把一个非唯一的文件名放在其中,而只是为了把它附加到一封电子邮件 Dim mailMessage As System.Net.Mail.Mai

如何附加一个名称非常不友好的文件(比如一个包含会话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", ????)
是的--您可以通过为附件()使用不同的构造函数来完成您想要做的事情。遗憾的是,没有一个文件名和一个单独的名称,但是有一个文件名和一个单独的名称是
流。在
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语法很弱,因此可能会有一些愚蠢的错误,但希望我的意思是清楚的,这些绝对是正确的类/方法。)

Bravo!工作得很有魅力。非常感谢你。