Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net &引用;“邮件发送被拒绝”;_Asp.net_Email_Azure_Smtp_Gmail - Fatal编程技术网

Asp.net &引用;“邮件发送被拒绝”;

Asp.net &引用;“邮件发送被拒绝”;,asp.net,email,azure,smtp,gmail,Asp.net,Email,Azure,Smtp,Gmail,我正在使用作为我的域的SMTP服务器 我创建了一个“联系我们”页面,用户可以通过该页面向公司发送电子邮件 当我从电脑发送电子邮件时,它可以工作,但人们向我抱怨,当他们发送电子邮件时,他们会收到以下消息: Mailbox unavailable. The server response was: 5.7.0 Mail sending denied abcdefghi 这是我的设置 Web.config: <system.net> <mailSettings>

我正在使用作为我的域的SMTP服务器

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

当我从电脑发送电子邮件时,它可以工作,但人们向我抱怨,当他们发送电子邮件时,他们会收到以下消息:

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

这是我的设置

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);
}

行动:

<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);
}
公共行动结果联系人(ContactFormModel联系人)
{
ViewBag.Message=false;
if(ModelState.IsValid)
{
var message=new MailMessage();
var sender=新邮件地址(contact.Email,contact.FullName);
message.Sender=Sender;
message.From=发送者;
message.To.Add(Settings.Default.ContactUsEmail);
如果(请联系SendSelfCopy)
message.CC.Add(发送方);
message.ReplyToList.Add(发件人);
message.Subject=string.Format(“公司网站-Msg from{0}:{1}”,
contact.FullName,contact.Subject);
var sb=新的StringBuilder();
sb.AppendFormat(“From::{2}
”, sender.DisplayName、sender.Address、contact.Subject); 某人追加电话(联系信息); message.Body=sb.ToString(); message.IsBodyHtml=true; 使用(var client=new SmtpClient()) { client.Timeout=15000; 尝试 { 客户端。发送(消息); } 捕获(例外) { 投掷; } } ModelState.Clear(); ViewBag.Success=true; ViewBag.Message=Settings.Default.ContactUsSuccessMessage; 返回视图(); } 返回视图(联系人); }

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

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

这里的问题是Google不信任您部署的IP地址。短期修复方法是远程登录到您的web角色,并使用您尝试使用的帐户登录Gmail

我还通过从本地机器登录Gmail帐户并单击web角色的IP地址的“信任连接”来解决这个问题

但是,您应该记住,当Azure决定取消部署时,每次获得新的IP地址时,您都必须这样做


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

当您从计算机发送邮件时,“发件人”的电子邮件地址是否与您的SMTP凭据相同?想想也许Gmail不喜欢你先登录,然后以其他人的身份发送电子邮件。不,“发件人”与实际的邮箱不同。我甚至试着从一个私人浏览实例发送电子邮件。你能解释一下关于在客户端上连接到SMTP的最后一个注意事项吗?我不明白。@Shimmy抱歉说得不清楚。我说的是一家客户公司(我是顾问),而不是客户机。我所在的公司有一台SMTP服务器。我们通过Azure的防火墙连接到它来发送电子邮件。我喜欢SendGrid的想法,但不幸的是,如果你没有从美国注册,Azure商店将不可用。