首页 > 后端开发 > C++ > 如何将 MailMessage 对象作为 .eml 或 .msg 文件保存到磁盘?

如何将 MailMessage 对象作为 .eml 或 .msg 文件保存到磁盘?

Mary-Kate Olsen
发布: 2025-01-08 10:21:41
原创
985 人浏览过

How Can I Save MailMessage Objects to Disk as .eml or .msg Files?

将 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板