将 MailMessage 对象保留为 EML 或 MSG 文件
.NET MailMessage
类不提供将自身保存到磁盘的直接方法。 但是,根据您的需求,有一些解决方法可以实现此目的。
一种方法涉及使用 SmtpClient
将电子邮件传送重定向到文件系统。此方法不会直接创建 EML 或 MSG 文件,而是生成可以稍后处理的文件。
方法一:编程配置
此方法将 SmtpClient
配置为将电子邮件写入指定目录:
<code class="language-csharp">SmtpClient client = new SmtpClient("mysmtphost"); client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; client.PickupDirectoryLocation = @"C:\somedirectory"; client.Send(message);</code>
这将在指定目录中创建电子邮件文件。 然后,一个单独的进程可以处理转发这些文件。
方法二:应用程序配置
或者,您可以通过应用程序的配置文件配置交付方法:
<code class="language-xml"><configuration> <system.net> <mailSettings> <smtp deliveryMethod="SpecifiedPickupDirectory"> <specifiedPickupDirectory pickupDirectoryLocation="C:\somedirectory" /> </smtp> </mailSettings> </system.net> </configuration></code>
这实现了与编程方法相同的结果。 电子邮件文件将保存到指定目录并可以进行后续处理。
请记住选择一个合适的目录并确保您的应用程序具有写入该位置的必要权限。 此方法对于批处理或不需要立即网络传输的场景很有用。 对于直接创建 EML/MSG 文件,您需要探索第三方库或根据电子邮件内容编写自定义文件。
以上是如何将 MailMessage 对象作为 EML 或 MSG 文件保存到磁盘?的详细内容。更多信息请关注PHP中文网其他相关文章!