c# - 如何或无法通过 office 365 smtp 发送邮件
问题描述
我正在尝试通过 office365 smtp 服务器发送邮件,但它提示“发送邮件失败”。详细报告显示“{“无法从传输连接读取数据:net_io_connectionclosed。”}”
这是我的代码
public string SendEmail(string To, string Sub, string Desc)
{
string mess = "";
MailMessage mail = new MailMessage();
mail.Subject = Sub;
mail.From = new MailAddress(SenderEmail);
mail.To.Add(To);
mail.Body = Desc;
mail.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient("smtp-mail.outlook.com", 587);
smtp.EnableSsl = true;
smtp.UseDefaultCredentials = false;
NetworkCredential netCre = new NetworkCredential(SenderEmail, SenderPass);
smtp.Credentials = netCre;
try
{
smtp.Send(mail);
mess = "Success";
}
catch (Exception ex)
{
mess = "Fail";
return ex.Message;
}
return mess;
}
Web.config 将是
<add key="Sendermail" value="email" />
<add key="SenderPassword" value="password" />
注意:电子邮件地址是域配置的。当我尝试使用 gmail smtp 端口发送邮件时,它工作正常,仅适用于 Outlook(office365)我面临这个问题
解决方案
总体而言,您的解决方案似乎是正确的,尽管可能有一些原因是由于 TLS 问题或主机导致的,您是否尝试将 smtp.office365.com 作为服务器/主机?
可以在此处找到其他一些检查/测试选项:
推荐阅读
- microsoft-graph-api - 在不使用客户端密钥的情况下获取 Microsoft Graph API 的访问令牌
- css - Primeract 和 nextjs webpack 配置
- kibana-7 - kibana 不能在 linux 机器上启动
- laravel - 判断更新 Laravel 版本是否成功
- r - 将向量粘贴到字符串
- sql - 如何从 sql 中的 2 个表中按组聚合和计算平均值?
- javascript - 如何映射Axios获取对数组的响应
- laravel-5 - 如何在 laravel-5.3 中修复刀片中的“ErrorException”
- python-3.x - UnboundLocalError:赋值前引用的局部变量。为什么进入函数时没有赋值初始化值
- django - 在 djaongo admin 中隐藏“添加”、“更改”、“删除”操作