向 .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 电子邮件添加附件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Symfony 中向电子邮件添加附件?

将附件添加到 WooCommerce 自定义电子邮件

ABAP 通过程序向外部邮箱发送邮件时生成的Excel附件能否设置格式?怎么设置

在 C# 中设置电子邮件附件名称

Xamarin EmailAttachment 不在 iOS 上添加附件

在 .NET 中向电子邮件添加内容描述