主に SMTP を使用して電子メール メッセージを送信するアプリケーションを開発しました。メッセージを 1 つずつ送信するのは問題ありませんが、プロセスを高速化したいと考えています。SmtpClient
相互の競合を避けるために、メッセージと同様に複数のインスタンスを作成しました。個別のインスタンスがあるため、.Send()
複数のスレッドで実行するとうまくいくと思いました。ただし、Thread
このコードを使用して 1 つのスレッドで 1 つの電子メールを送信することもできないため、コードだけでは何かが機能しません。"Failure sending mail"
あいまいな例外を受け取るだけです。Thread
動作するコードと動作しないコードを投稿します。誰かが原因であると信じていることを共有できますか?
現在、新しい機能を使用するつもりはありませんがasync
、代わりに活用していますThread
作業宣言とメソッド呼び出し:
var SMTP = new SmtpClient
{
Host = txtBxSenderHost.Text,
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(strSenderAddress, strSenderPassword)
};
using (var message = new MailMessage(senderAdrress, toAddress)
{
Subject = strSubject,
Body = strBody
})
{
SMTP.Send(message);
}
NOT ワーキング スレッド宣言とメソッド呼び出し:
var SMTP = new SmtpClient
{
Host = txtBxSenderHost.Text,
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(strSenderAddress, strSenderPassword)
};
using (var message = new MailMessage(senderAdrress, toAddress)
{
Subject = strSubject,
Body = strBody
})
{
Thread T1 = new Thread(delegate() { SMTP.Send(message); } );
T1.Start();
}