【发布时间】:2021-06-16 21:55:58
【问题描述】:
我尝试从中发送电子邮件的 Exchange 主机不需要身份验证。过去我使用 SmtpClient 类成功地实现了这一点,但由于微软推荐 Mailkit,我更喜欢这个。
Mailkit 是否总是需要用户名和密码才能连接?我一直在到处寻找答案,但似乎找不到答案。
这是我目前的代码:
private void Send(MimeMessage message)
{
using (var client = new SmtpClient(new ProtocolLogger(Console.OpenStandardOutput())))
{
client.Connect(Host, Port, SecureSocketOptions.None);
client.Send(message);
client.Disconnect(true);
}
}
当然我得到一个错误:5.7.1 客户端未通过身份验证
谢谢你。
【问题讨论】:
-
该错误是否显示为异常?
-
does not require authentication显然不是。这是服务器错误,而不是 MailKit 错误。 Exchange确实需要身份验证。没有理智的管理员会禁用身份验证,从而允许垃圾邮件发送者使用邮件服务器。默认为 Windows 身份验证,不需要任何凭据 - 使用执行帐户的身份建立与服务器的连接 -
@PanagiotisKanavos 服务器允许匿名电子邮件发送
-
@mason 我想是的。我只能在我的网页上看到消息,因为我无法在开发环境中测试电子邮件。
-
@PanagiotisKanavos 与有能力、专注于安全的 IT 人员一起工作一定是多么美好!我遇到了相当多的 Exchange 服务器,它们在内部访问时具有 SMTP 而无需身份验证。
标签: c# exchange-server mailkit