「GmailのSMTPを利用してメール送信する」の版間の差分
ナビゲーションに移動
検索に移動
Administrator (トーク | 投稿記録) (ページの作成:「Gmailでは「安全性の低いアプリ」云々で「GoogleアカウントのパスワードでのSMTP認証」が廃止されました。 以前はGoogleアカ…」) |
Administrator (トーク | 投稿記録) |
||
12行目: | 12行目: | ||
<source lang="csharp"> | <source lang="csharp"> | ||
+ | var gmailMailAddress = ""; | ||
+ | var gmailAppPassowrd = ""; // これがアプリパスワードに変わった | ||
+ | var fromEmail = gmailMailAddress; | ||
+ | var fromDisplayName = ""; | ||
+ | var toEmail = ""; | ||
+ | |||
var smtpClient = new SmtpClient("smtp.gmail.com") | var smtpClient = new SmtpClient("smtp.gmail.com") | ||
{ | { | ||
30行目: | 36行目: | ||
var mailMessage = new MailMessage | var mailMessage = new MailMessage | ||
{ | { | ||
− | From = new MailAddress( | + | From = new MailAddress(fromEmail, fromDisplayName), |
Subject = subject, | Subject = subject, | ||
Body = message | Body = message |
2024年5月10日 (金) 04:45時点における最新版
Gmailでは「安全性の低いアプリ」云々で「GoogleアカウントのパスワードでのSMTP認証」が廃止されました。
以前はGoogleアカウントの設定「安全性の低いアプリを許可する」云々というオプションが用意されており、それを有効にすることで再び「GoogleアカウントのパスワードでのSMTP認証」を有効にすることができていましたが、2024年にそれも廃止されました。
代わりに現在は「アプリごとのパスワード」を発行する必要があります。 以下にアプリ名を入力すると「アプリパスワード」が発行されるのでそれをコピペしましょう。
.NET 8.0での実装例[編集 | ソースを編集]
.NET 8.0のSystem.Net.Mail.SmtpClientを使った実装例。 アプリパスワードを利用する以外の変更点はない。
var gmailMailAddress = "";
var gmailAppPassowrd = ""; // これがアプリパスワードに変わった
var fromEmail = gmailMailAddress;
var fromDisplayName = "";
var toEmail = "";
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);