將 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中文網其他相關文章!