2011-08-02 8 views
1
using (MailMessage message = new MailMessage()) 
       { 
        message.From = new MailAddress(userEmail.InnerText); 
        message.To.Add(new MailAddress("[email protected]")); 
             message.Subject = selection.Text; 
        message.Body = htmlBody(); 
        message.IsBodyHtml = true; 
        SmtpClient client = new SmtpClient("142.16.0.142"); 
        client.Send(message); 

       } 

client.send(メッセージ)が成功したことを確認する方法を教えてください。c#MailMessageクラス - サーバーがメッセージを実行したことを確認する方法

答えて

3

入れSend()方法SmtpFailedRecipientsExceptionブロックとキャッチのtry..catch内側:

try 
{ 
    client.Send(message); 
} 
catch(SmtpFailedRecipientsException smtpFex) 
{ 
    string failedRecipient = smtpFex.FailedRecipient; 
    // it will return FailedRecipient's emailID. Now check the value of failedRecipient 
    //and take the action/s. 
} 
0

メッセージを送信せずにSMTPサーバが起動しているかどうかをテストする方法はありません。

それは(ログは/ etc)に失敗した場合の処置を取るためにtry/catchブロックで.Sendをラップされるためにあなたができる唯一のこと

2

あなたは本当に、メッセージが成功したことを確認することはできません。メッセージが配信されたことを確認する正確な方法はありません。ステートメントをtry catchブロックに囲み、例外をキャッチするかどうかを確認します。

"送信は、受け入れられた受信者に電子メールを送信し、SmtpFailedRecipientsExceptionがスローされます。例外には、拒否された受信者の一覧が含まれます。詳細については、http://msdn.microsoft.com/en-us/library/swas0fwc.aspxを参照してください。

0

try-catchブロックを使用して、SMTP拒否メッセージを含む例外をスローすることができます。ただし、SMTPサーバーが配信用のメールを受け入れると、接続は閉じられ、正常に表示されますが、実際に配信されたかどうかを知る方法はありません。メールクライアントでは、メールが正常に配信されたかどうかを確認する唯一の真の方法は、受信確認です。

関連する問題