【问题标题】:We do not relay non-local mail,Mailbox name not allowed. What does it mean我们不中继非本地邮件,不允许使用邮箱名称。这是什么意思
【发布时间】:2012-02-07 20:23:03
【问题描述】:

我正在尝试通过 System.Net.Mail 发送电子邮件。单击发送时,我收到以下异常

System.Net.Mail.SmtpFailedRecipientException:不允许使用邮箱名称。服务器响应是:我们不中继非本地邮件

MailAddress toAddress = new MailAddress(toEmail); 邮件地址 fromAddress = new MailAddress(fromEmail); MailMessage mailMsg = new MailMessage(fromAddress, toAddress); mailMsg.Subject = 电子邮件主题; mailMsg.Body = MessageBody.ToString(); mailMsg.IsBodyHtml = true; System.Net.Mail.SmtpClient smtp = new SmtpClient(EmailSettings.SmtpServer); smtp.Send(mailMsg);

这就是我所做的一切。

我应该采取什么解决方法才能使它起作用

【问题讨论】:

  • 使用本地 smtp 服务器(在您的域中)或找到一个允许通过身份验证进行中继的服务器。
  • 如果您显示一些代码以及您在 web.config 中定义的任何相关内容(如果适用),将会有所帮助。
  • to 和 from 地址都来自同一个服务器
  • @Sandhurst:这可能还不够。它们不仅必须来自同一服务器,而且服务器名称应该等于 EmailSettings.SmtpServer 值 - 包括子域。

标签: asp.net email smtp


【解决方案1】:

您应该使用属于您要连接的 SMTP 服务器的凭据和发件人邮箱来验证您的 SMTP 客户端。

【讨论】:

    【解决方案2】:

    另外(取决于您的邮件服务器)fromAddress 需要是邮件服务器上的实际帐户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-28
      • 2019-11-25
      • 2023-02-13
      • 2022-08-23
      • 2018-10-28
      • 2011-01-15
      • 1970-01-01
      • 2017-08-24
      相关资源
      最近更新 更多