NetCore 发送邮件

Net Core2.0出来后,已经自带了邮件服务。但是对于低版本来说,是无法使用自带的邮件服务的,只能通过第三方工具来实现。

这里我简单说一下使用MailKit这个包来发送邮件

 

1. 安装MailKit NuGet包。

2. 实现方法

using MimeKit;
using MailKit.Net.Smtp;


public void SendMail()
        {
            try
            {
                var message = new MimeMessage();
                message.From.Add(new MailboxAddress("xxx@163.com"));
                message.To.Add(new MailboxAddress("xxx@163.com"));

                message.Subject = "星期天去哪里玩?";

                message.Body = new TextPart("plain") { Text = "我想去故宫玩,如何" };

                using (var client = new SmtpClient())
                {
                    // For demo-purposes, accept all SSL certificates (in case the server supports STARTTLS)
                    client.ServerCertificateValidationCallback = (s, c, h, e) => true;

                    client.Connect("smtp.163.com", 587, true);

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

                    // Note: only needed if the SMTP server requires authentication
                    client.Authenticate("xxx@163.com", "password");

                    client.Send(message);
                    client.Disconnect(true);
                }
            }
            catch(Exception ex)
            {

            }
        }

这里需要注意几点:

1. 需要用587端口,并且开启SSL

2. 检查邮箱设置里面是否开启   POP3/SMTP、IMAP/SMTP服务 

 

 

参考链接:

https://stackoverflow.com/questions/44305186/the-smtp-server-has-unexpectedly-disconnected-in-mailkit

http://www.cnblogs.com/savorboard/p/aspnetcore-email.html

 

posted @ 2017-09-15 10:41  jiao006  阅读(822)  评论(0编辑  收藏  举报