ASPでNET Core 1.0でメール送信機能を実現

6794 ワード

いくつかのプロジェクトをaspに移行する準備ができています.Netcoreはまずクラスライブラリをカプセル化し,メール送信クラスに遭遇したときにasp.Netcore 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", "[email protected]"));
            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("[email protected]", "******");

                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", "[email protected]"));
            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("[email protected]", "******");
                await client.SendAsync(emailMessage).ConfigureAwait(false);
                await client.DisconnectAsync(true).ConfigureAwait(false);
                
            }
        }

    }
}

以上のコードの同期非同期は問題ありません
注:普通のメールボックスはテンセント企业の邮便物、163などすべて成功を送ることができて、しかしアリ云のメールのプッシュに失败して、もし达人がアリ云のプッシュを実现することができるメールがあれば教えてください、とても感谢します!