Asp.net &引用;“邮件发送被拒绝”;
我正在使用作为我的域的SMTP服务器 我创建了一个“联系我们”页面,用户可以通过该页面向公司发送电子邮件 当我从电脑发送电子邮件时,它可以工作,但人们向我抱怨,当他们发送电子邮件时,他们会收到以下消息: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>
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商店将不可用。