c# - 尝试在 asp.net 核心应用程序中使用 SmtpClient 发送电子邮件时出错
问题描述
我正在尝试从 asp.net 核心应用程序发送电子邮件,但我不断收到错误消息
SmtpException:SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.7.57 客户端未通过身份验证发送邮件。[JN2P275CA0038.ZAFP275.PROD.OUTLOOK.COM]
我也尝试过检查防火墙规则并增加超时,但没有帮助,所以我不确定出了什么问题
这是我发送电子邮件的代码
SmtpClient client = new SmtpClient("smtp.office365.com")
{
//Port = 587, //outlook port 587
Port = 587,
EnableSsl = true,
//UseDefaultCredentials
UseDefaultCredentials = false,
TargetName = "STARTTLS/smtp.office365.com",
DeliveryMethod = SmtpDeliveryMethod.Network,
Credentials = new NetworkCredential("myemail@myemails.com","password"),
};
MailMessage message = new MailMessage()
{
From = new MailAddress("myemail@myemails.com"),
Subject = "New Requisition",
Body = "New requisition has been created:" + " " + requisition.RequisitionNo,
IsBodyHtml = true,
};
message.To.Add(SubmissionNotfication.To);
//message.CC.Add(SubmissionNotfication.Cc);
//var attachment = new System.Net.Mail.Attachment(filePath); //Attachment(string fileName, string mediaType)
//message.Attachments.Add(attachment);
client.Send(message);
}
解决方案
查看如何设置应用程序以使用 Microsoft 365 或 Office 365 发送电子邮件
您可能必须使用 MX 端点作为发送域并尝试使用端口 25
SmtpClient client = new SmtpClient("yourorganisation.mail.protection.outlook.com")
{
Port = 25,
EnableSsl = true,
UseDefaultCredentials = false,
Credentials = new NetworkCredential("myemail@myemails.com","password"),
};
推荐阅读
- java - 对象转换 JSON,但 Bigdecimal 错误
- azure-container-service - Azure 容器实例执行时间
- android - Android TimePickerDialog Android 4.4 按钮颜色错误
- statistics - 计算正态单变量分布的 Fisher 信息矩阵
- javascript - 如何访问 DOM 中的元素
- python - 在scrapy中使用自定义方法时无法找出正确的方法
- maven - 准备分析任务失败并出现 ##[error][SQ] API GET '/api/server/version' 仅针对 Azure Devops 中的 Maven 集成失败
- flutter - 使用提示时,Flutter DropdownButton 不显示值
- php - Laravel whereIn 不返回结果
- angular - 如何在 Angular 中使用按钮作为表单控件?