zoukankan      html  css  js  c++  java
  • 用ASP.NET Core 1.0中实现邮件发送功能

    准备将一些项目迁移到 asp.net core 先从封装类库入手,在遇到邮件发送类时发现在 asp.net core 1.0中并示提供SMTP相关类库,于是网上一搜发现了MailKit

    好东西一定要试一下,何况是开源,下面是代码可实现SMTP邮件发送:

    using MailKit.Net.Smtp;
    using MailKit.Security;
    using MimeKit;
    using System.Threading.Tasks;
    
    namespace ConsoleApp1
    {
        public class MailHelper
        {
            public static void Send(string email, string subject, string message)
            {
                var emailMessage = new MimeMessage();
                emailMessage.From.Add(new MailboxAddress("tianwei blogs", "mail@hantianwei.cn"));
                emailMessage.To.Add(new MailboxAddress("mail", email));
                emailMessage.Subject = subject;
                emailMessage.Body = new TextPart("plain") { Text = message };
    
                using (var client = new SmtpClient())
                {
                    client.Connect("smtp.hantianwei.cn", 465, true);
                    client.Authenticate("mail@hantianwei.cn", "******");
    
                    client.Send(emailMessage);
                    client.Disconnect(true);
    
                }
            }
    
            public static async Task SendEmailAsync(string email, string subject, string message)
            {
                var emailMessage = new MimeMessage();
    
                emailMessage.From.Add(new MailboxAddress("tianwei blogs", "mail@hantianwei.cn"));
                emailMessage.To.Add(new MailboxAddress("mail", email));
                emailMessage.Subject = subject;
                emailMessage.Body = new TextPart("plain") { Text = message };
    
                using (var client = new SmtpClient())
                {
                    await client.ConnectAsync("smtp.hantianwei.cn", 25, SecureSocketOptions.None).ConfigureAwait(false);
                    await client.AuthenticateAsync("mail@hantianwei.cn", "******");
                    await client.SendAsync(emailMessage).ConfigureAwait(false);
                    await client.DisconnectAsync(true).ConfigureAwait(false);
                    
                }
            }
    
        }
    }

    以上代码同步异步都没有问题

    注:一般邮箱如腾讯企业邮、163等都可以发送成功,但阿里云邮件推送失败,如果有高手可实现阿里云推送邮件请告诉我一下,非常感谢!

  • 相关阅读:
    slz关于Date类
    slzJDK1.8的环境变量配置
    slz关于下载Eclipse(绿色版,无需安装)及参数的设置
    slzjdk1.8安装包的下载
    slzTomcat9.0的下载(绿色版,无需安装)及环境变量的配置
    第一个dp51程序实现拉幕效果
    tsql中的sleepwaitfor
    删除WorkSheet时不提示对话框 WorkSheet.Delete
    如何写标准的连接字符串
    如何在Foxpro中调用Win32 api函数
  • 原文地址:https://www.cnblogs.com/hantianwei/p/5654844.html
Copyright © 2011-2022 走看看