LoginSignup
27

More than 3 years have passed since last update.

Web API 経由でメール送信

Last updated at Posted at 2014-07-25

この記事の最新版は 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 のアクセストークンが必要です。アクセストークンの有効期間は短いので、リフレッシュトークンを保持しておく必要があるかもしれません。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27