在 asp.net 中更改 smtp 主机时出错
Posted
技术标签:
【中文标题】在 asp.net 中更改 smtp 主机时出错【英文标题】:Error when changing the smtp host in asp.net 【发布时间】:2018-11-01 03:28:00 【问题描述】:5.2.0 STOREDRV.Submission.Exception:SendAsDeniedException.MapiExceptionSendAsDenied;由于消息无法提交消息的永久异常,无法处理消息。
我有一个 ASP.NET Web 应用程序,它有一个带有表单的联系页面。在我更换主机之前一切都很好。例如,如果我将主机更改为 smtp.live.com
而不是 smtp.gmail.com
我得到了上面的错误。我的问题是,如果我的主机来自我的 gmail 帐户,它可以正常工作,但如果我更改它,它就不起作用。我已经搜索过其他问题,但它们与我的不同,在 Google 上找不到任何合适的答案。
我的代码如下:
public partial class WebForm2 : System.Web.UI.Page
protected void Page_Load(object sender, EventArgs e)
protected void btnSend_Click(object sender, EventArgs e)
MailMessage mm = new MailMessage("sender@hotmail.com", "mymail@hotmail.com");
mm.Subject = TextBox1.Text;
mm.Body = "Name: " + txtName.Text + "<br /><br />Email: " + txtEmail.Text + "<br />" + TextBox2.Text;
if (FileUpload1.HasFile)
string FileName = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName);
mm.Attachments.Add(new Attachment(FileUpload1.PostedFile.InputStream, FileName));
mm.IsBodyhtml = true;
SmtpClient smtp = new SmtpClient();
//smtp.Host = "smtp.gmail.com";
smtp.Host = "smtp.live.com";
smtp.EnableSsl = true;
System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
NetworkCred.UserName = "mymail@hotmail.com";
NetworkCred.Password = "xxxxxxxx";
smtp.UseDefaultCredentials = false;
smtp.Credentials = NetworkCred;
smtp.Port = 587;
smtp.Send(mm);
lblMessage.Text = "Email Sent SucessFully.";
【问题讨论】:
你试过这个吗:***.com/questions/9851319/…? 是的,这是第一次尝试。 查看此链接及异常及解决方案***.com/questions/40016305/… php 不是我的菜,所以.. 请将您找到的答案放在答案中,而不是在问题中:) 【参考方案1】:回答:通过这个问题 -> PHPMailer .Exception:SendAsDeniedException.MapiExceptionSendAsDenied ,我将“sender@hotmail.com”更改为我的另一封邮件并工作。
【讨论】:
以上是关于在 asp.net 中更改 smtp 主机时出错的主要内容,如果未能解决你的问题,请参考以下文章
尝试在 ASP.Net MVC 网站中启用 CORS 时出错
解决 ASP.NET Chart 控件出错 为 ChartImg.axd 执行子请求时出错
在 ASP.NET 中打开 Crystal Report 时出错