C# 它没有';当我通过C发送错误(不存在)邮件时,我不会陷入困境#
我可以毫无问题地发送邮件。但我的代码也应该控制邮件地址是否正确。如果没有,则应进入挡块。但这不符合规定。因此,即使邮件地址不正确,我尝试发送的所有邮件似乎都已发送。请在此处输入代码C# 它没有';当我通过C发送错误(不存在)邮件时,我不会陷入困境#,c#,email,smtp,send,C#,Email,Smtp,Send,我可以毫无问题地发送邮件。但我的代码也应该控制邮件地址是否正确。如果没有,则应进入挡块。但这不符合规定。因此,即使邮件地址不正确,我尝试发送的所有邮件似乎都已发送。请在此处输入代码 因此,我无法确定是否所有的邮件都发送到了邮件地址 using (var smtp = new SmtpClient()) { smtp.Host = emailSetting.Host; smtp.Ena
因此,我无法确定是否所有的邮件都发送到了邮件地址
using (var smtp = new SmtpClient())
{
smtp.Host = emailSetting.Host;
smtp.EnableSsl = emailSetting.EnableSSL ?? true;
smtp.Port = Convert.ToInt32(emailSetting.Port);
smtp.UseDefaultCredentials = false;
var credentials = new NetworkCredential
{
UserName = emailSetting.EmailAdress,
Password = emailSetting.Password
};
smtp.Credentials = credentials;
int sendMailCount = 0;
var x = serviceEmail.GetQueueEmail();
foreach (var email in x.ToList())
{
using (var mailMessage = new MailMessage())
{
try
{
mailMessage.From = new MailAddress(emailSetting.EmailAdress, emailSetting.FromDisplayName);
mailMessage.To.Add("xyz@hotmail.com");//wrong email address
mailMessage.Subject = email.Subject;
mailMessage.IsBodyHtml = true;
mailMessage.Body = email.Body;
email.Status = EmailStatus.SEND;
smtp.Send(mailMessage);
}
catch (Exception ex)
{
email.Status = EmailStatus.FAILED;
continue;
}
}
}
你为什么期待
xyz@hotmail.com
是否被视为错误/不正确的电子邮件地址?从电子邮件地址标准的角度来看,它是完全有效的。“我不知道是否所有的邮件都发送到了邮件地址”-是的,这很正常。如果你想知道一封电子邮件是否被发送和阅读,你需要他们点击一个链接或类似链接。发送电子邮件时不知道会发生什么是完全正常的。作为一个比喻:如果我把200封信投进邮箱,我也不知道它们是否可以交付。xyz@hotmail.com这是一封很好的电子邮件,可能存在,请尝试在那里输入一个空字符串,然后再次尝试。我认为OP正在查找格式正确但不存在的异常。他把它放在问题的标题中:)假设你想检测到一个未知的收件人错误,你需要直接发送到接收域MX记录中指定的服务器,你很可能正在通过另一台服务器进行中继,该服务器只是在确认你的发送请求。