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をコピーして、ブラウザのアドレスバーに入力して、認可処理を行って下さい。
ONにすると次のようなポップアップが表示されます。
認可するGmailのアカウントを選択します。
無事承認されると下記のような画面が表示されます。
無事認可されると、認証/認可クレデンシャルウィンドウの認証/認可アカウントタブにでデータが登録されます。
以上で、OAuthのiDempiereの設定は終了になります。
次に実際にメールを送信して検証して行きます。
クライアント設定
Gmailを送信するためにクライアントの設定を行います。
SMTPサーバーに[smtp.gmail.com]を設定して下さい。
そして、メールアドレスには、テスト送信に使用するGmailのアドレスを入力して下さい。
メールパスワードの入力も必要になりますが、ここに入力するパスワードはダミーの適当なパスワードで大丈夫です。
OAuthで認可されているので、ダミーの適当なパスワードでも、「メールテスト送信」ボタンを押せばメールが送信できるはずです。
ユーザー設定
ユーザーマスタの「メールユーザーID」と「メールユーザーパスワード」を設定して下さい。「メールユーザーパスワード」は、ダミーの適当なパスワードで大丈夫です。
参考サイト
- Wiki : Configure OAuth2 EMail