我在 asp.net c# 中发送邮件时遇到错误
错误提示
用户非本地;请尝试不同的路径。服务器响应是: 该邮件服务器在从某个地址发送邮件之前需要进行身份验证 本地托管域。请重新配置您的邮件客户端 发送邮件之前进行身份验证。
string result = "";
try
{
string SmtpHost = "mail.catertainment.com";
int port = 25;
string path = string.Format("{0}{1}", Common.ApplicationVirtualRootUrl, "admin.xml");
XmlDocument doc = new XmlDocument();
doc.Load(path);
XmlNode root = doc.DocumentElement;
XmlNodeList nodeList = root.SelectNodes("//COMMONSETTING/EMAILSETTING");
foreach (XmlNode node in nodeList)
{
SmtpHost = node.SelectSingleNode("SMTP_HOST").InnerText;
port = Convert.ToInt32(node.SelectSingleNode("SMTP_PORT").InnerText);
}
int i = 0;
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress("dhasarathan@***.com", "Dhasarathan");
for (i = 0; i < toAddresses.Length; i++)
{
mailMessage.To.Add(toAddresses[i]);
}
mailMessage.Subject = subject;
mailMessage.Body = body;
mailMessage.Priority = MailPriority.High;
mailMessage.IsBodyHtml = true;
if (ccAddresses != null)
{
for (i = 0; i < ccAddresses.Length; i++)
{
mailMessage.CC.Add(ccAddresses[i]);
}
}
if (bccAddresses != null)
{
for (i = 0; i < bccAddresses.Length; i++)
{
mailMessage.Bcc.Add(bccAddresses[i]);
}
}
SmtpClient smtpClient = null;
if (!string.IsNullOrEmpty(SmtpHost) && port != 0)
smtpClient = new SmtpClient(SmtpHost, port);
else
smtpClient = new SmtpClient();
smtpClient.EnableSsl = false;
smtpClient.Credentials = new System.Net.NetworkCredential("erp@******.com", "*****");
smtpClient.Send(mailMessage);
result = "Success";
}
catch (Exception ex)
{
result = "Failure due to " + ex.Message;
}
return result;
我也有同样的问题。我的密码已过期,然后我更新了密码,问题已解决。
在以下行检查您的密码:
smtpClient.Credentials = new System.Net.NetworkCredential("erp@******.com", 更新密码);