6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GMail APIでメール送信(Java)

Last updated at Posted at 2018-12-26

はじめに

Javaで GMail API を叩いてメール送信するところを軽く試してみましたのでまとめます。

なお本例ではメールアカウント所有者に成り代わってメール送信するため、
送信前に OAuth認証 でアカウント所有者から許可を得る必要があります。

※ アカウント所有者に認証させる代わりにサービスアカウントを使用するパターンは こちら で。

概要

必要なもの

環境の作成手順

image.png

サンプルソースの処理フロー

image.png

何はともあれ動かしてみたい

そんな感じで試してみます。

実行環境を作成する

(a-1) GCPにプロジェクト作成

GCP で適当にプロジェクトを用意します。

(a-2) APIを有効にする

該当プロジェクトで APIとサービスGmail API を探して有効にします。
次の通り。
image.png

image.png

(a-3) ソース準備

GitHubから取得 して 送信先メアド を適当に修正してください。
送信元メアドは認証画面で許可した人のものが使われます。

なお公式ガイドは次の場所にあり、今回のサンプルはほぼこちらから(以下略)

(a-4) プロジェクトのOAuth2.0クライアントID取得

まず適当にOAuth同意画面を作ります。
名前だけあればいいようです。
image.png
次にOAuthクライアントIDを作成してjsonファイルでダウンロードします。
image.png

image.png

image.png

以上です。
あとはIDEを使うなりjarにするなりで実行できます。

実行してみると・・

初回実行時には次のような認証画面が表示されます。

image.png

上記画面で許可をクリックするとメールが送信されます。

このとき合わせてローカルにアクセストークンとリフレッシュ
トークンの保存も行われます。

再実行時は上記トークンが使用されるため認証画面は出ません。

注意点など

OAuth認証で許可された操作について

本例では メール送信のスコープのみ をリクエストしています。
他の操作も行いたい場合は 適切なスコープ をリクエストする必要があります。

リフレッシュトークンの期限切れ

今回は軽く試すだけなので気にしていませんが、本番ではアカウント所有者による
いくつかの操作 によってトークンが期限切れになる点も考慮する必要があります。

以上です。

6
8
0

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
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?