簡體   English   中英

C# 如何在 SmtpClient.Send() 中識別未知用戶 email 地址

[英]C# How to identify unknown user email address in SmtpClient.Send()

我正在使用以下代碼在我公司內部在我們自己的中繼服務器上發送電子郵件:

using (MailMessage em = new MailMessage()) {

    em.From = new MailAddress("noreply@mycompany.com", "From Me");
    em.Priority = MailPriority.High;
    em.IsBodyHtml = true;

    try {
        em.To.Add(new MailAddress("Addy_1@mycompany.com"));
        em.To.Add(new MailAddress("Addy_2@mycompany.com"));
        :
        :
        em.To.Add(new MailAddress("Addy_99@mycompany.com"));
    } 
    catch (Exception e) {
        Log.Write(e);
    }

    em.Subject = "My Subject";
    em.Body = "Email body";
}

using (SmtpClient smtp = new SmtpClient()) {

    smtp.UseDefaultCredentials = true;
    smtp.Host = "smtprelay.mycompany.com";

        smtp.Send(em);
    }

}

如果任何電子郵件不再有效,則在您實際嘗試 to.send() email 之前不會報告任何內容,此時為時已晚,您最終會得到:

Mailbox unavailable. The server response was: 5.1.1 User unknown
at System.Net.Mail.SmtpClient.Send(MailMessage message)
   at SendEmail.ProcessRequest(HttpContext context) in C:\inetpub\wwwroot\site\SendEmail.ashx:line 104

有什么方法可以事先執行此 email 驗證? .To.Add()似乎沒有引起任何警報。 或者,一旦失敗,有沒有辦法確定哪個 email 地址是壞的?

您應該能夠嘗試/捕獲 Send 方法並捕獲 SmtpFailedRecipientsException 或 SmtpFailedRecipientException

SmtpFailedRecipient異常

SmtpFailedRecipientException

單個收件人異常有一個 FailedRecipient 屬性:

https://docs.microsoft.com/en-us/dotnet/api/system.net.mail.smtpfailedrecipientexception.failedrecipient?view=netcore-3.1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM