【问题标题】:Problem with SmtpClient in ASP.NET web appASP.NET Web 应用程序中的 SmtpClient 问题
【发布时间】:2021-06-11 21:25:05
【问题描述】:

我在 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 服务器认为收件人必须是系统上的用户。

接下来我可以尝试什么?我什至对电子邮件地址进行了硬编码,而不是使用变量,我认为这可能存在一些奇怪的问题,但它没有用。

【问题讨论】:

  • 您在From = new MailAddress("sender", "Testing") 中使用的地址是什么?该错误告诉您 SMTP 服务器没有具有该电子邮件地址的用户(通常与 FROM 地址的安全性有关)。如果 SMTP 服务器无法识别 FROM 地址,它将不会发送电子邮件。
  • 您尝试过多个电子邮件地址吗?都失败了?
  • @Matheus,就是这样!!!非常感谢!将其发布为答案,我很乐意接受!我没有在 FROM 字段中创建地址,我认为这并不重要,因为我使用的是带有凭据的有效电子邮件地址来登录 SMTP 服务器。你的答案是正确的!

标签: c# asp.net smtpclient


【解决方案1】:

错误告诉您 SMTP 服务器没有使用该电子邮件地址的用户(通常与 FROM 地址的安全性有关)。如果 SMTP 服务器无法识别 FROM 地址,它将不会发送电子邮件。

解决方案,更改您的FROM。示例:

var mailMessage = new MailMessage
{
   From = new MailAddress("tester", "test@adminsystem.com"),
   Subject = subject,
   Body = body
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 2013-05-31
    • 1970-01-01
    • 2023-03-06
    • 2016-06-26
    • 1970-01-01
    • 2019-01-26
    相关资源
    最近更新 更多