1

バッチでメールを送信するように 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機能しているのではないでしょうか。

4

1 に答える 1