向 .NET 电子邮件添加附件
Posted
技术标签:
【中文标题】向 .NET 电子邮件添加附件【英文标题】:Adding an attachment to a .NET Email 【发布时间】:2011-02-03 22:27:36 【问题描述】:如何附加一个名称非常不友好的文件(例如其中包含会话 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", ????)
【问题讨论】:
【参考方案1】:是的——你可以通过为 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 语法很弱,所以其中可能有一些愚蠢的错误,但希望我的意思很清楚,这些绝对是正确的类/方法。)
【讨论】:
太棒了!像魅力一样工作。非常感谢。以上是关于向 .NET 电子邮件添加附件的主要内容,如果未能解决你的问题,请参考以下文章
ABAP 通过程序向外部邮箱发送邮件时生成的Excel附件能否设置格式?怎么设置