Edited at

Web API 経由でメール送信

この記事の最新版は 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 が便利そうです。もちろん無料で使えます。

電子メール (RFC 5322) のデータを HTTP で1回 POST するだけで送信できます。

  $mail = qq{From: <me@example.net>\x0D\x0ATo: <hoge@example.net>\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 のアクセストークンが必要です。アクセストークンの有効期間は短いので、リフレッシュトークンを保持しておく必要があるかもしれません。