【发布时间】:2020-11-11 07:34:46
【问题描述】:
我有一个 asp.net Web API,用于将电子邮件发送到另一个电子邮件 (gmail),另一个前端项目调用该 API,当后端和前端项目在本地时,它可以完美地发送电子邮件,但它不适用于实时托管 (SmarterAsp)。
这是我的大火和代码:
//This method only sends email as per the data sent
[System.Web.Http.HttpPost]
public EmailResponseModel SendEmail()
{
NetworkCredential basicCredential =
new NetworkCredential("mysenderemail@hotmail.com", "mysenderemailpassword");
MailMessage ProviderMail = new MailMessage();
ProviderMail.From = new MailAddress("mysenderemail@hotmail.com");
ProviderMail.To.Add("myemail@gmail.com");
ProviderMail.Subject = "Title";
ProviderMail.IsBodyHtml = true;
ProviderMail.Body = "Body";
SmtpClient smtp = new SmtpClient();
smtp.Port = 587;
smtp.UseDefaultCredentials = false;
smtp.Host = "smtp.office365.com";
smtp.Credentials = basicCredential;
smtp.EnableSsl = true;
try
{
smtp.Send(ProviderMail);
return Response;
}
catch (Exception ex)
{
return Response;
}
finally
{
smtp.Dispose();
}
}
这里是我从 API 得到的错误:
System.Net.Mail.SmtpException:SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.7.57 SMTP
我尝试做很多事情,例如:
- 尝试了这些主机 smtp.live.com、smtp.office365.com、smtp-mail.live.com 等
- 尝试了其他端口,例如 25
- 试图将此 UseDefaultCredentials 设置为 false 和 true
- 确保用户名和密码正确
- 从 SMPT Config 代码的顺序确定
我在这方面花了几个小时,但我没有找到任何解决方案!我需要任何见解。
【问题讨论】:
-
我在使用 gmail 时看到了这个错误,在 smtp.office365.com 中是否有用于发送电子邮件的“应用程序密码”,其中用户密码不起作用?
-
您可以选择使用 SmarterAsp SMTP 服务器吗?
-
您好像在使用Gmail服务,对吗?如果是,您需要确保您的 MX 记录已指向 Gmail 服务。
-
谢谢,@pete-S- 我通过使用 SmarterAsp 电子邮件尝试了您的想法,它奏效了,将您的答案添加为单独的帖子,我将使其成为适合我的案例的正确答案
标签: c# asp.net email smtp hotmail