ASP.NET Core 1.0实现邮件发送功能
准备将一些项目迁移到asp.netcore先从封装类库入手,在遇到邮件发送类时发现在asp.netcore1.0中并示提供SMTP相关类库,于是网上一搜发现了MailKit
好东西一定要试一下,何况是开源,下面是代码可实现SMTP邮件发送:
usingMailKit.Net.Smtp; usingMailKit.Security; usingMimeKit; usingSystem.Threading.Tasks; namespaceConsoleApp1 { publicclassMailHelper { publicstaticvoidSend(stringemail,stringsubject,stringmessage) { varemailMessage=newMimeMessage(); emailMessage.From.Add(newMailboxAddress("tianweiblogs","mail@hantianwei.cn")); emailMessage.To.Add(newMailboxAddress("mail",email)); emailMessage.Subject=subject; emailMessage.Body=newTextPart("plain"){Text=message}; using(varclient=newSmtpClient()) { client.Connect("smtp.hantianwei.cn",465,true); client.Authenticate("mail@hantianwei.cn","******"); client.Send(emailMessage); client.Disconnect(true); } } publicstaticasyncTaskSendEmailAsync(stringemail,stringsubject,stringmessage) { varemailMessage=newMimeMessage(); emailMessage.From.Add(newMailboxAddress("tianweiblogs","mail@hantianwei.cn")); emailMessage.To.Add(newMailboxAddress("mail",email)); emailMessage.Subject=subject; emailMessage.Body=newTextPart("plain"){Text=message}; using(varclient=newSmtpClient()) { awaitclient.ConnectAsync("smtp.hantianwei.cn",25,SecureSocketOptions.None).ConfigureAwait(false); awaitclient.AuthenticateAsync("mail@hantianwei.cn","******"); awaitclient.SendAsync(emailMessage).ConfigureAwait(false); awaitclient.DisconnectAsync(true).ConfigureAwait(false); } } } }
以上代码同步异步都没有问题
注:一般邮箱如腾讯企业邮、163等都可以发送成功,但阿里云邮件推送失败,如果有高手可实现阿里云推送邮件请告诉我一下,非常感谢!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。