小编Tec*_*Guy的帖子

什么时候需要在 MailKit 上启用 SSL

我在 Microsoft 网站上读到 SmtpClient 已过时,他们建议使用 MailKit 替换它。

我正在编写一个应用程序来使用 MailKit。

这是我到目前为止:

    // *************** SEND EMAIL *******************
    using (var client = new MailKit.Net.Smtp.SmtpClient())
    {
      //accept all SSL certificates
      client.ServerCertificateValidationCallback = (s, c, h, e) => true;

      client.Connect(emailSettings.SmtpServer, emailSettings.SmtpPort, emailSettings.IsSslEnabled);

      if (emailSettings.IsAuthenticationRequired)
      {
        // Note: only needed if the SMTP server requires authentication
        client.Authenticate(emailSettings.SmtpUsername, emailSettings.SmtpPassword);
      }

      // timeout = 20 seconds
      client.Timeout = 20000;

      client.Send(message);
      client.Disconnect(true);
    }
Run Code Online (Sandbox Code Playgroud)

当我设置这部分时:

client.Connect(emailSettings.SmtpServer, emailSettings.SmtpPort, emailSettings.IsSslEnabled);
Run Code Online (Sandbox Code Playgroud)

最后一个参数是bool useSSL,我将其设置为 true。我的电子邮件服务器由 Rackspace 托管,所以我知道它使用 SSL。当我将此选项设置为 true 时,它​​无法发送,但如果我将此选项设置为 false,则发送正常。

此行不应该捕获证书类型: …

c# mailkit

6
推荐指数
1
解决办法
2973
查看次数

使用 Mailkit 连接时何时应该使用 SecureSockOptions 或 useSsl

我对在使用 MailKit 设置 smtp 时如何使用第三个参数感到困惑。

这是我到目前为止所拥有的:

    // *************** SEND EMAIL *******************
    using (var client = new MailKit.Net.Smtp.SmtpClient(new ProtocolLogger("smtp.log")))
    {
      client.SslProtocols = System.Security.Authentication.SslProtocols.Tls12;

      //accept all SSL certificates
      client.ServerCertificateValidationCallback = (s, c, h, e) => true;

      // Note: since we don't have an OAuth2 token, disable
      // the XOAUTH2 authentication mechanism.
      client.AuthenticationMechanisms.Remove("XOAUTH2");

      // client.Connect(emailSettings.SmtpServer, emailSettings.SmtpPort, emailSettings.IsSslEnabled);
      client.Connect(emailSettings.SmtpServer, emailSettings.SmtpPort, emailSettings.AuthType);

      if (emailSettings.IsAuthenticationRequired)
      {
        // Note: only needed if the SMTP server requires authentication
        client.Authenticate(emailSettings.SmtpUsername, emailSettings.SmtpPassword);
      }

      if (emailSettings.TimeOut == 0) emailSettings.TimeOut = 10; …
Run Code Online (Sandbox Code Playgroud)

c# smtp winforms mailkit

2
推荐指数
1
解决办法
5199
查看次数

标签 统计

c# ×2

mailkit ×2

smtp ×1

winforms ×1