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 中国語 Web サイトの他の関連記事を参照してください。