Mailkit 支持发送匿名电子邮件吗?

Ral*_*tru 2 c# exchange-server mailkit

我尝试发送电子邮件的 Exchange 主机不需要身份验证。过去我已经使用 SmtpClient 类成功实现了这一目标,但由于 Microsoft 推荐 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);
            }
        }
Run Code Online (Sandbox Code Playgroud)

当然,我收到错误:5.7.1 客户端未经过身份验证

谢谢你。

jst*_*ast 7

Mailkit 是否始终需要用户名和密码才能连接?我一直在到处寻找答案,但似乎找不到。

MailKit 不需要身份验证 - 这取决于服务器是否需要身份验证。

如果服务器不需要身份验证,您的代码只需不要调用client.Authenticate()(如果您使用异步代码,则不需要调用 AuthenticateAsync),就像您在示例代码片段中尝试执行的操作一样。

5.7.1 client was not authenticated是当您尝试发送邮件时来自 SMTP 服务器的错误,表明您的 SMTP 服务器已配置为需要身份验证。

MailKit 抛出的异常消息都不以错误代码字符串开头(5.7.1 是 SMTP 错误代码),因此如果抛出以 SMTP 错误代码字符串开头的异常,则表示它来自服务器。