Mailkit 是否支持发送匿名邮件?

Does Mailkit supports sending anonymous emails?

我尝试从中发送电子邮件的 Exchange 主机不需要身份验证。过去我使用 SmtpClient Class 成功实现了这一点,但由于 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);
            }
        }

当然我收到一个错误:5.7.1 客户端未通过身份验证

谢谢大家。

Does Mailkit always require a username and a password to connect? I have been searching for an answer everywhere but I cannot seem to find one.

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

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

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

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