System.Net.Mail.SmtpClient通过SSL/TLS协议发送邮件失败问题解决
一、问题描述
MailKit是一个开源的基于MimeKit的跨平台邮件收发类库,支持IMAP、POP3、SMTP。其中SmtpClient也支持TLS协议.
可以很好的支持 .NET Core以及 .NET Framework框架的邮件发送
安装Nuget Package
#.NET Core
dotnet add package MailKit --version 2.5.1
#.NET Framework
Install-Package MailKit -Version 2.5.1
示例代码:
using System;
using MailKit.Net.Smtp;
using MailKit;
using MimeKit;
namespace Ken.IO.Util {
class Program
{
public static void Main (string[] args)
{
var message = new MimeMessage ();
message.From.Add (new MailboxAddress ("test", "xxx@qq.com"));
message.To.Add (new MailboxAddress ("test", "xxx@163.com"));
message.Subject = "邮件测试";
//html or plain
var bodyBuilder = new BodyBuilder ();
bodyBuilder.HtmlBody = "邮件测试html正文ken.io";
bodyBuilder.TextBody = "邮件测试文本正文ken.io";
message.Body = bodyBuilder.ToMessageBody();
using (var client = new SmtpClient ()) {
client.ServerCertificateValidationCallback = (s,c,h,e) => true;
//smtp服务器,端口,是否开启ssl
client.Connect ("smtp.qq.com", 465, true);
client.Authenticate ("xxx@qq.com", "password");
client.Send (message);
client.Disconnect (true);
}
}
}
}
https://www.ruanyifeng.com/blog/2014/02/ssl_tls.html
本文首发于:https://ken.io/note/smtpclient-sending-mail-failure-via-ssl-or-tls-solved