メインメニューを開く

差分

GmailのSMTPを利用してメール送信する

1,808 バイト追加, 2024年5月10日 (金)
ページの作成:「Gmailでは「安全性の低いアプリ」云々で「GoogleアカウントのパスワードでのSMTP認証」が廃止されました。 以前はGoogleアカ…」
[[Gmail]]では「安全性の低いアプリ」云々で「GoogleアカウントのパスワードでのSMTP認証」が廃止されました。

以前はGoogleアカウントの設定「安全性の低いアプリを許可する」云々というオプションが用意されており、それを有効にすることで再び「GoogleアカウントのパスワードでのSMTP認証」を有効にすることができていましたが、2024年にそれも廃止されました。

代わりに現在は「アプリごとのパスワード」を発行する必要があります。
以下にアプリ名を入力すると「アプリパスワード」が発行されるのでそれをコピペしましょう。
* https://myaccount.google.com/apppasswords

== .NET 8.0での実装例 ==
.NET 8.0のSystem.Net.Mail.SmtpClientを使った実装例。
アプリパスワードを利用する以外の変更点はない。

<source lang="csharp">
var smtpClient = new SmtpClient("smtp.gmail.com")
{
// gmailの定番設定
Port = 587,
EnableSsl = true,

// 現在のユーザー資格情報を使用しない。
// .NETがビッグなお世話をしてくるのを止める。
UseDefaultCredentials = false,

// 認証情報
// パスワードはGmailのパスワードではなく以下で生成したアプリパスワードです。
// https://myaccount.google.com/apppasswords
Credentials = new NetworkCredential(gmailMailAddress, gmailAppPassowrd),
};

var mailMessage = new MailMessage
{
From = new MailAddress(_fromEmail, _fromDisplayName),
Subject = subject,
Body = message
};
mailMessage.IsBodyHtml = false;
mailMessage.To.Add(toEmail);

// 送信
await smtpClient.SendMailAsync(mailMessage);
</source>

[[category: .NET]]
[[category: Google]]