[英]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.