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等都可以发送成功,但阿里云邮件推送失败,如果有高手可实现阿里云推送邮件请告诉我一下,非常感谢!

  • 相关阅读:
    CF538H Summer Dichotomy
    CF1558F Strange Sort
    CF429E Points and Segments
    CF986F Oppa Funcan Style Remastered
    [JOI Open 2016] 摩天大楼
    [做题笔记] 浅谈笛卡尔树结构的应用
    CF1383C String Transformation 2
    CF1558E Down Below
    weex打包安卓艰苦之路
    IntelliJ IDEA 推荐15款插件
  • 原文地址:https://www.cnblogs.com/hantianwei/p/5654844.html
Copyright © 2011-2022 走看看