MailMessage オブジェクトを EML または MSG ファイルとして保存する
.NET MailMessage
クラスは、それ自体をディスクに保存するための直接メソッドを提供しません。 ただし、ニーズに応じて、これを達成するための回避策があります。
1 つのアプローチには、SmtpClient
を使用して電子メール配信をファイル システムにリダイレクトすることが含まれます。この方法では、EML または MSG ファイルは直接作成されませんが、後で処理できるファイルが生成されます。
方法 1: プログラムによる構成
このアプローチでは、指定されたディレクトリに電子メールを書き込むように SmtpClient
を構成します。
<code class="language-csharp">SmtpClient client = new SmtpClient("mysmtphost"); client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; client.PickupDirectoryLocation = @"C:\somedirectory"; client.Send(message);</code>
これにより、指定されたディレクトリに電子メール ファイルが作成されます。 その後、別のプロセスでこれらのファイルの転送を処理できます。
方法 2: アプリの構成
また、アプリケーションの設定ファイルを通じて配信方法を設定することもできます。
<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 中国語 Web サイトの他の関連記事を参照してください。