将 MailMessage 对象保留为 .eml 或 .msg 文件
开发人员经常需要将 MailMessage
对象表示的电子邮件保存到文件系统中。 不幸的是,MailMessage
类不直接支持保存到磁盘。本文提出了一个实用的解决方案。
解决方案:利用 SmtpClient
关键是利用SmtpClient
类。通过将其 DeliveryMethod
属性设置为 SmtpDeliveryMethod.SpecifiedPickupDirectory
,我们将电子邮件存储重定向到本地文件夹,从而有效地绕过网络传输。
代码示例:
<code class="language-csharp">using System.Net.Mail; namespace EmailFileWriter { class Program { static void Main(string[] args) { // Initialize a MailMessage object. Content can be added as needed. MailMessage email = new MailMessage(); // Configure SmtpClient for local file storage. SmtpClient client = new SmtpClient(); client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; client.PickupDirectoryLocation = @"C:\somedirectory"; // Specify your desired path // "Sending" the email saves it to the specified directory. client.Send(email); } } }</code>
替代配置:App.config
为了增强灵活性,请在应用程序的配置文件 (SmtpClient
) 中配置 App.config
设置:
<code class="language-xml"><?xml version="1.0" encoding="utf-8"?> <configuration> <system.net> <mailSettings> <smtp deliveryMethod="SpecifiedPickupDirectory"> <specifiedPickupDirectory pickupDirectoryLocation="C:\somedirectory" /> </smtp> </mailSettings> </system.net> </configuration></code>
此方法在调用client.Send()
时在指定目录中生成电子邮件文件(.eml 或.msg,取决于所使用的电子邮件客户端)。 这些文件可以稍后处理或发送。
以上是如何将 MailMessage 对象作为 .eml 或 .msg 文件保存到磁盘?的详细内容。更多信息请关注PHP中文网其他相关文章!