asp.net-core
MailKitを使った.Net Coreアプリでのメール送信
サーチ…
前書き
現在、.Net Coreには.NetのSystem.Net.Mail
などの電子メールを送信するサポートは含まれていません。 MailKitプロジェクト (これはNugetで利用可能です)は、この目的のための素敵なライブラリです。
nugetパッケージのインストール
Install-Package MailKit
電子メールを送信するための簡単な実装
using MailKit.Net.Smtp;
using MimeKit;
using MimeKit.Text;
using System.Threading.Tasks;
namespace Project.Services
{
/// Using a static class to store sensitive credentials
/// for simplicity. Ideally these should be stored in
/// configuration files
public static class Constants
{
public static string SenderName => "<sender_name>";
public static string SenderEmail => "<sender_email>";
public static string EmailPassword => "email_password";
public static string SmtpHost => "<smtp_host>";
public static int SmtpPort => "smtp_port";
}
public class EmailService : IEmailSender
{
public Task SendEmailAsync(string recipientEmail, string subject, string message)
{
MimeMessage mimeMessage = new MimeMessage();
mimeMessage.From.Add(new MailboxAddress(Constants.SenderName, Constants.SenderEmail));
mimeMessage.To.Add(new MailboxAddress("", recipientEmail));
mimeMessage.Subject = subject;
mimeMessage.Body = new TextPart(TextFormat.Html)
{
Text = message,
};
using (var client = new SmtpClient())
{
client.ServerCertificateValidationCallback = (s, c, h, e) => true;
client.Connect(Constants.SmtpHost, Constants.SmtpPort, false);
client.AuthenticationMechanisms.Remove("XOAUTH2");
// Note: only needed if the SMTP server requires authentication
client.Authenticate(Constants.SenderEmail, Constants.EmailPassword);
client.Send(mimeMessage);
client.Disconnect(true);
return Task.FromResult(0);
}
}
}
}
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow