asp.net - "Mail sending denied"

标签 asp.net email azure smtp gmail

我正在将其用作我的域的 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="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7910171f16391a161409181700571a1614" rel="noreferrer noopener nofollow">[email protected]</a>">
      <network defaultCredentials="false" host="smtp.gmail.com" port="587"
        userName="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c0a9aea6af80a3afadb0a1aeb9eea3afad" rel="noreferrer noopener nofollow">[email protected]</a>" 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 运行。

最佳答案

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

此处的问题是 Google 不信任您部署的 IP 地址。解决此问题的简单方法是远程访问您的网络角色并使用您尝试使用的帐户登录 Gmail。

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

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

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

关于asp.net - "Mail sending denied",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14264084/

相关文章:

asp.net - 如何在 MVC 5 中设置 OwinContext 超时

php - 用 PHP 发送电子邮件到 Facebook 组邮件地址

performance - Azure 存储的下载速度慢

ASP.NET - 将所有 https 请求重写为 http

asp.net - 如何按需加载两个 ASP.NET UserControl?

c# - WebMethod 自动将类对象作为 JSON 返回

c# - 使用 SendGrid 发送带附件的电子邮件

android - 使用 Twitter 请求电子邮件

azure - 如何在 Azure 中允许 URL 编码路径段

node.js - 推送通知的实现