簡體   English   中英

檢查電子郵件狀態或收件人狀態c#

[英]check email status or recipient status c#

我有一個任務檢查電子郵件是否成功發送給收件人

 using (MailMessage mm = new MailMessage("kayone831@gmail.com", "petrawaretemp@gmail.com"))
            {
                int emailStatus = 1;

                mm.Subject = "TRY";
                mm.Body = "TRY";
                Attachment attachment = new Attachment(pdfFilename,
                MediaTypeNames.Application.Octet);
                mm.Attachments.Add(attachment);
                mm.IsBodyHtml = false;
                SmtpClient smtp = new SmtpClient();
                smtp.Host = "smtp.gmail.com";
                smtp.EnableSsl = true;
                NetworkCredential NetworkCred = new NetworkCredential("kayone831@gmail.com", "renkaiheng");
                smtp.UseDefaultCredentials = true;
                smtp.Credentials = NetworkCred;
                smtp.Port = 587;
                smtp.Send(mm);
                Response.Write("<script>alert('Success');</script>");
            }

想問一下是否有辦法知道我的電子郵件是否已成功發送給收件人,或者我可以在發送電子郵件之前檢查收件人的電子郵件是否存在。 因為每次發送電子郵件時,無論成功與否,我都需要保存此電子郵件的狀態。 非常感謝任何幫助或指導。

Send()方法不返回值,但是會在發送電子郵件時等待,如果出現問題,它將引發異常。 將“發送”包含在“ try/catch塊中。

try
{
    smtp.Send(mm);
    // record the email as successful
}
catch (SmtpException smtpEx)
{
    // authentication failed, operation timed out, etc
    // record the email as failed
}
catch (SmtpFailedRecipientsException ex)
{
    // message couldn't be delivered to one or more recipients
    // record the email as failed
}

我不能肯定地說這100%保證了電子郵件的發送。 您取決於接收電子郵件的服務器,因此希望它返回准確的信息。

您可以在文檔中找到更多信息。

無法檢查郵件是否已傳遞給收件人。

假設您的SMTP服務器為xyz,並且您向電子郵件為gmail的收件人發送郵件。 您需要有權訪問gmail SMTP,以查看您發送的郵件是否已傳遞給收件人。

如果您在發送電子郵件時沒有遇到任何錯誤,可以安全地假定電子郵件已發送。

暫無
暫無

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

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