サーバーからちょっとしたメール送信をしたいときに何かしらのSMTPサーバー経由でメールを送りたいなと思ったので
ひとまず、簡単なメール通知をGoogleのSMTPサーバーを使って送る例をメモっておく
GoogleのSMTPを使ってメール送信する際には、アプリのパスワードを作成する必要がある
手順は、以下ページのとおり
Googleでアプリパスワードを生成
C#での実装
using System;
using System.Net;
using System.Net.Mail;
const string appPassword = "your-app-password"; // アプリのパスワード
var mailAddressFrom = "youraddress@gmail.com"; // 送信者
var mailAddressTo = "送信先メールアドレス"; // 受信者
var subject = "テストメール"; // タイトル
var body = "プログラムから送信しています"; // 本文
// SMTP設定
var smtp = new SmtpClient("smtp.gmail.com", 587)
{
EnableSsl = true,
Credentials = new NetworkCredential(mailAddressFrom, appPassword)
};
var mail = new MailMessage(mailAddressFrom, mailAddressTo, subject, body);
try
{
smtp.Send(mail);
Console.WriteLine("メールを送信しました。");
}
catch (Exception ex)
{
Console.WriteLine("送信エラー: " + ex.Message);
}
var mailAddressFrom = "youraddress@gmail.com"; // 送信者
var mailAddressTo = "送信先メールアドレス"; // 受信者
var subject = "テストメール"; // タイトル
var body = "プログラムから送信しています"; // 本文
// SMTP設定
var smtp = new SmtpClient("smtp.gmail.com", 587)
{
EnableSsl = true,
Credentials = new NetworkCredential(mailAddressFrom, appPassword)
};
var mail = new MailMessage(mailAddressFrom, mailAddressTo, subject, body);
try
{
smtp.Send(mail);
Console.WriteLine("メールを送信しました。");
}
catch (Exception ex)
{
Console.WriteLine("送信エラー: " + ex.Message);
}
Python
import smtplib
from email.mime.text import MIMEText
APP_PASSWORD = "your-app-password" # アプリのパスワード
mailAddressFrom = "youraddress@gmail.com" # 送信者
mailAddressTo = "送信先メールアドレス" # 受信者
subject = "テストメール"
body = "プログラムから送信しています"
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = mailAddressFrom
msg['To'] = mailAddressTo
try:
smtp = smtplib.SMTP("smtp.gmail.com", 587)
# SMTPでTLS通信をするためのお作法
smtp.ehlo()
smtp.starttls()
smtp.ehlo()
smtp.login(mailAddressFrom, APP_PASSWORD)
smtp.sendmail(mailAddressFrom, mailAddressTo, msg.as_string())
smtp.close()
print("メールを送信しました。")
except Exception as e:
print(f"送信エラー: {e}")