この記事の最新版は https://wiki.suikawiki.org/n/Web%20API%E7%B5%8C%E7%94%B1%E3%81%A7%E3%83%A1%E3%83%BC%E3%83%AB%E9%80%81%E4%BF%A1 にあります。
メールの大量送信は専門のサービスがあったりしますが、システム内部などの狭い範囲で少量のメールを送信したいだけのときには Gmail の API が便利そうです。もちろん無料で使えます。
- https://developers.google.com/gmail/api/
- https://developers.google.com/gmail/api/guides/sending
- https://developers.google.com/gmail/api/v1/reference/users/messages/send
電子メール (RFC 5322) のデータを HTTP で1回 POST するだけで送信できます。
$mail = qq{From: <[email protected]>\x0D\x0ATo: <[email protected]>\x0D\x0ASubject: Test\x0D\x0A\x0D\x0AHello, world!};
http_post
url => q<https://www.googleapis.com/gmail/v1/users/me/messages/send?key=> . $ClientID,
header_fields => {
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $AccessToken,
},
content => perl2json_bytes {raw => encode_base64url $mail};
なお、 scope として https://mail.google.com/
を指定した OAuth2 のアクセストークンが必要です。アクセストークンの有効期間は短いので、リフレッシュトークンを保持しておく必要があるかもしれません。