【iDempiere Lab】iDempiereからGmailをOAuth2を使って送信する

 iDempiereではメールサーバーの設定をする事で、iDempiereからメールを送信する事ができます。その際にメールサーバー側がOAuth(オーオース)に対応している場合、OAuthを使って認証/認可して、メールを送信する事ができるようにiDempiere8.2からなりました。

 そこでこのコンテンツでは、GmailでOAuthを使ったメール送信について調査及び研究し、その成果をまとめています。

 

OAuthを使ったメール送信の利点

 OAuthを使って認証/認可する事で、iDempiere側ではメールサーバーにアクセスするパスワードをデータベースに保存する必要が無くなり、セキュリティー的により好ましい状態になります。

 

Googleの設定

OAuthを使ってGmailを送信するたには、予めGoogle側の設定が必要になります。

「Google Cloud Platform (以下、GCP)」の「APIとサービス設定」を行います。

APIとサービス

私の場合は、これまでGCPを使用していたので、すぐに使える状態でしたが、初めての方は、新しいプロジェクトを作成する必要があります。

ここでは、OAuthという新しいプロジェクトを作成して、検証を進めて行きます。

 

OAuth同意画面

◆OAuth同意画面

◆スコープ

ここは特に何も登録する必要はありません。

◆テストユーザー

テストユーザーとして、OAuthを使ってメール送信するGmailのアドレスを登録して下さい。

「+ ADD USERS」ボタンをクリックすると登録できます。

 

認証情報

次に、認証情報に移動し、認証情報を作成します。

OAuthクライアントID」を選択して下さい。

アプリケーションの種類には「ウエブアプリケーション」を選択して下さい。

URIには「https://ドメイン/oauth2/callback」を入力して下さい。

例: https://localhost:8443/oauth2/callback

 

そして作成ボタンを押すと、「クライアントID」と「クライアントシークレット」というのが発行されます。これらの情報はiDempiereに設定する必要があります。

クライアントIDとクライアントシークレットの情報については、後で確認する事ができます。「OAuth2.0クライアントID」に登録されているデータをクリックして下さい。

そうすると、クライアントIDとクライアントシークレットの情報が画面の右側に表示され確認する事ができます。

GCPでの設定はこれで終了です。次にiDempiereの設定を行います。

 

OAuthを使ったメール送信のメニュー

OAuthを使ったメール送信を行うための設定は、下記の3つのメニューになります。

  • 認証/認可プロバイダ
  • 認証/認可クレデンシャル
  • 認可されたメールアドレスの追加

認証/認可プロバイダ

認証/認可プロバイダの設定は、Gmailを使用する分には既に初期設定されていますので、何もする必要はありません。このまま使用して行きます。

認証/認可クレデンシャル

認証/認可クレデンシャルタブ

GCPの設定で発行された、クライアントIDとクライアントシークレットの情報を下記のように入力します。

 

認証/認可アカウントタブ

認証/認可アカウントタブは、入力する必要はありません。この後に「認可されたメールアドレスの追加」プロセスを実行すると、自動的に設定されます。

認可されたメールアドレスの追加プロセス

◆認可スコープ

EMail : 変更不可

◆認証/認可クレデンシャル

先に、認証/認可クレデンシャルウィンドウで登録したデータを選択して下さい。

◆認可処理をポップアップウィンドウで開く

ONにすると、認可処理がポップアップウィンドウで、表示されます。

OFFにすると、認可処理するURLが表示されます。URLをコピーして、ブラウザのアドレスバーに入力して、認可処理を行って下さい。

認可処理をポップアップウィンドウで開くをOFFにした場合
認可処理をポップアップウィンドウで開くをOFFにした場合

ONにすると次のようなポップアップが表示されます。

認可するGmailのアカウントを選択します。

無事承認されると下記のような画面が表示されます。

無事認可されると、認証/認可クレデンシャルウィンドウの認証/認可アカウントタブにでデータが登録されます。

以上で、OAuthのiDempiereの設定は終了になります。

次に実際にメールを送信して検証して行きます。

クライアント設定

Gmailを送信するためにクライアントの設定を行います。

SMTPサーバーに[smtp.gmail.com]を設定して下さい。

そして、メールアドレスには、テスト送信に使用するGmailのアドレスを入力して下さい。

メールパスワードの入力も必要になりますが、ここに入力するパスワードはダミーの適当なパスワードで大丈夫です。

OAuthで認可されているので、ダミーの適当なパスワードでも、「メールテスト送信」ボタンを押せばメールが送信できるはずです。

ユーザー設定

ユーザーマスタの「メールユーザーID」と「メールユーザーパスワード」を設定して下さい。「メールユーザーパスワード」は、ダミーの適当なパスワードで大丈夫です。

参考サイト