【问题标题】:"Mail sending denied"“邮件发送被拒绝”
【发布时间】:2012-12-25 04:53:56
【问题描述】:

我正在用作我的域的 SMTP 服务器。

我创建了一个“联系我们”页面,用户可以从该页面向公司发送电子邮件。

当我从我的计算机发送电子邮件时,它可以正常工作,但是人们向我抱怨说,当他们发送电子邮件时,他们会收到以下消息:

Mailbox unavailable. The server response was: 5.7.0 Mail sending denied abcdefghi

View screenshot

这是我的设置,

Web.config:

<system.net>
  <mailSettings>
    <smtp deliveryMethod="Network" from="info@company.com">
      <network defaultCredentials="false" host="smtp.gmail.com" port="587"
        userName="info@company.com" password="mypassword" enableSsl="true" />
    </smtp>
  </mailSettings>
</system.net>

行动:

public ActionResult Contact(ContactFormModel contact)
{
  ViewBag.Message = false;
  if (ModelState.IsValid)
  {
    var message = new MailMessage();
    var sender = new MailAddress(contact.Email, contact.FullName);
    message.Sender = sender;
    message.From = sender;
    message.To.Add(Settings.Default.ContactUsEmail);
    if (contact.SendSelfCopy)
      message.CC.Add(sender);
    message.ReplyToList.Add(sender);

    message.Subject = string.Format("Company Website - Msg from {0}: {1}",
      contact.FullName, contact.Subject);

    var sb = new StringBuilder();
    sb.AppendFormat("From: <a href='mailto:{1}'>{0}</a>: <b>{2}</b><hr/>",
      sender.DisplayName, sender.Address, contact.Subject);
    sb.AppendLine(contact.Message);
    message.Body = sb.ToString();
    message.IsBodyHtml = true;

    using (var client = new SmtpClient())
    {
      client.Timeout = 15000;

      try
      {
        client.Send(message);
      }
      catch (Exception)
      {
        throw;
      }
    }

    ModelState.Clear();
    ViewBag.Success = true;
    ViewBag.Message = Settings.Default.ContactUsSuccessMessage;
    return View();
  }

  return View(contact);
}

该网站托管在 Windows Azure 中并使用 .NET 4.5 运行。

【问题讨论】:

  • 当您从您的计算机发送时,“发件人”是否与您的 SMTP 凭据相同的电子邮件地址?只是想也许 Gmail 不喜欢你登录然后以其他人的身份发送电子邮件。
  • 不,“发件人”与实际邮箱不同。我什至尝试从私人浏览实例发送电子邮件。

标签: asp.net email azure smtp gmail


【解决方案1】:

我在尝试通过 Azure 发送电子邮件时遇到了完全相同的问题。

这里的问题是 Google 不信任您部署的 IP 地址。解决此问题的捷径是远程进入您的网络角色并使用您尝试使用的帐户登录 Gmail。

我还通过从本地计算机登录到 Gmail 帐户并单击“信任连接”作为网络角色的 IP 地址来解决此问题。

但是,您应该记住,当 Azure 决定退回您的部署时,您每次获得新 IP 地址时都必须执行此操作。

在我的应用程序中,我刚刚连接到我客户公司网络上的 SMTP 服务器。如果这不是一个选项,您可以尝试SendGrid

【讨论】:

  • 您能否解释一下您关于在客户端连接到 SMTP 的最后说明?没看懂。
  • @Shimmy 很抱歉没有更清楚。我说的是客户公司(我是顾问)而不是客户端机器。我所在的公司有一个 SMTP 服务器。我们通过他们的防火墙从 Azure 连接到它以发送电子邮件。
  • 我喜欢 SendGrid 的想法,但不幸的是,如果您没有从美国注册,则无法使用 Azure 商店! Check it out.
猜你喜欢
  • 1970-01-01
  • 2015-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-03
相关资源
最近更新 更多