首頁 > 後端開發 > C++ > 如何將 MailMessage 物件作為 .eml 或 .msg 檔案儲存到磁碟?

如何將 MailMessage 物件作為 .eml 或 .msg 檔案儲存到磁碟?

Mary-Kate Olsen
發布: 2025-01-08 10:21:41
原創
1036 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板