バッチでメールを送信するように C# でプログラミングすると、コードは次のようになります。
public static bool Send(MailAddress Messagefrom,
string MessageTo,
string MessageSubject,
string MessageBody)
{
MailMessage message = new MailMessage();
message.From = Messagefrom;
message.To.Add(MessageTo);
message.Subject = MessageSubject;
message.Body = MessageBody;
message.BodyEncoding = System.Text.Encoding.UTF8;
//message.SubjectEncoding = Encoding.BigEndianUnicode;
message.IsBodyHtml = true;
message.Priority = MailPriority.High;
MailHelper mh = new MailHelper();
SmtpClient sc = mh.setSmtpClient("smtp.qq.com", 25);
sc.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback);
try
{
sc.SendAsync(message, message);
}
catch (Exception e)
{
LogHelper.WriteLog("Main send failed....\t the detail info:" +
e.ToString());
return false;
}
return true;
}
これは問題です!最初のメール送信に失敗すると (たとえば、メールアドレスが の場合null
)、次のメールが送信されません!
送信待ちのメールが非常に多いため、この状況の場合、どのように修正すればよいですか?たとえば、失敗したメールがこのテーブルに残っている可能性があり、管理者が手動で処理する必要があります。
しかし、この状況はSend
機能しているのではないでしょうか。