我正在将其用作我的域的 SMTP 服务器。
我创建了一个“联系我们”页面,用户可以通过该页面向公司发送电子邮件。
当我从计算机发送电子邮件时,它可以正常工作,但人们向我提示,当他们发送电子邮件时,他们会收到以下消息:
Mailbox unavailable. The server response was: 5.7.0 Mail sending denied abcdefghi
这是我的设置,
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/