问题描述
我在 ASP.NET Web 应用程序中遇到了 SmtpClient 问题。
public static bool SendMessage( string fromName,string toName,string subject,string body ) {
var smtpClient = new SmtpClient("server address here")
{
Port = 587,Credentials = new NetworkCredential("user","pass"),EnableSsl = false,};
var mailMessage = new MailMessage
{
From = new MailAddress("sender","Testing"),Subject = subject,Body = body
};
mailMessage.To.Add ( new MailAddress(toName,"Valued Customer") );
try {
smtpClient.Send ( mailMessage );
return true;
}
catch (Exception ex) {
var error = $"ERROR :{ex.Message}";
return false;
}
}
MailBox unavailable. The server response was: <email address being sent to> No such user here
我当然删除了 中的值,但在原始错误消息中,它是收件人的电子邮件地址。我几乎认为 SMTP 服务器认为收件人必须是系统上的用户。
接下来我可以尝试什么?我什至硬编码电子邮件地址而不是使用变量,认为这可能存在一些奇怪的问题,但没有奏效。
解决方法
错误告诉您 SMTP 服务器没有具有该电子邮件地址的用户(通常与 FROM 地址周围的安全性有关)。如果 SMTP 服务器无法识别发件人地址,则不会发送电子邮件。
解决方案,更改您的FROM。示例:
var mailMessage = new MailMessage
{
From = new MailAddress("tester","test@adminsystem.com"),Subject = subject,Body = body
};