winactorで「gmail.comのOauth2認証でメール送信する」シナリオのテスト

無償のGoogleアカウント(@gmail.com)から送信できるかテストしました。

Gmail 送受信シナリオ作成マニュアルを参照

インストールしたフォルダのなかにWinActor_Documents\Japanese\Manual_by_Function\WinActor_Gmail_Scenario_Manual.pdfがあります。

WinActor でサポートしているGmailの認証方式は、送受信時のいずれもOAuth2認証です。

OAuth2認証って?

そのメールソフト、OAuthに対応していますか!? https://ingage.jp/media/cs/1966

上記のページによると、従来はメーラーに「IDとパスワード」を保管して、サーバーに認証していたが、サーバーが発行する「アクセストークン」を利用して認証する仕組みです。

上記はメールについての解説ですが、メール以外のサービスでも、OAuth認証は利用できます。

ThunderbirdはOAuth2認証に対応しているクライアントアプリケーション

OAuth2認証は各アプリケーションが対応しているかどうかで利用できます。メールクライアントソフトのThunderbirdはOAuth2認証に対応しています。

下記のページのように設定することで、ThunderbirdにGmailのサーバーからアクセストークンを付与できます。(Thunderbirdはパスワードを保持するのではなく、アクセストークンを保持する)

MozillaThunderbird IMAP設定例(OAuth)新規 https://www.itc.keio.ac.jp/ja/gmail_user_manual_mailer_imap4_tb_oauth.html

実際にThunderbirdに設定してみた

メールアカウントをOAuth2認証で追加すると、Thunderbirdアプリケーション内のブラウザでGoogleログイン画面が表示され、メールアドレスとパスワードでログインすると、Thunderbirdに許可する画面が表示されした。「許可」をクリックすると正常に認証されました。

IMAPを有効にしたGoogleアカウントで、有償のGoogleWorkspaceのアカウントと無料のGoogleアカウントの両方とも問題なく設定できました。

WinActor 7.2.1はOAuth2認証に対応しているクライアントアプリケーション

認証情報はシナリオには含まれません。WinActorのアプリケーションに含まれます。

WinActorの設定画面を見てみる

WinActorを起動し、メニューバーの[ツール]-[Googleサインイン]をクリックします。

「クライアントID」と「クライアントシークレット」というのが必要です。(Thunderbirdでは不必要だったのはなぜでしょう?Google側が認めてるソフトだから?IMAPだから? 詳しい仕組みはわかりません…)

OAuth クライアント IDを作成してみる

無償のgmail.comアカウントで試しました。

Google Developers Consoleでプロジェクトを作成

https://console.cloud.google.com/apis/ にアクセスします。

初回は確認ダイアログが表示されます。

プロジェクトの選択→新しいプロジェクトをクリックします。

プロジェクト名を入力し、作成をクリックします。

[Oauth同意画面]で外部を選択し、作成をクリックします。

アプリ名とメールアドレスを入力して、保存して次へをクリックします。

認証情報を作成

[認証情報]をクリックし、認証情報を作成→OAuthクライアントIDをクリックします。

[アプリケーションの種類]はデスクトップアプリを選択し、[名前]を入力し、作成をクリックします。

OAuthクライアントが作成されました。

クライアントIDとクライアントシークレットをコピーしておきます。

WinActorでサインインしてみる

値をコピペし、サインインをクリックします。

プロジェクトを作成したgmailアカウントでログイン

ログインしましたが、「承認エラー」になりました。

OAuth同意画面でテストユーザーを追加

OAuth同意画面を確認したところ、公開ステータスは、「テスト」でした。テストユーザーを追加する必要があるみたいです。(アプリのステータスを「本番環境」に設定すると、Google アカウントを持つすべてのユーザーがアプリを利用できるようになります。OAuth 画面の構成方法に応じて、検証を受けるためにアプリの送信が求められることがあります。)

[ADD USERS]からプロジェクトを作成したgmailアカウントを追加しました。

プロジェクトを作成したgmailアカウントでログイン(再)

再び、プロジェクトを作成した無償のgmailアカウントでログインしてみると、今度は、テスト中の画面表示になりました。Continueをクリックします。

権限の付与の確認画面で「許可」をクリックします。もう一度、確認画面が表示され「許可」をクリックします。

アクセストークンとリフレッシュトークンが「設定済み」になりました。「閉じる」をクリックします。

Gmail送信するシナリオを作成

Gmail送信ライブラリを追加します。

宛先を入力します。

Gmail送信するシナリオを実行

シナリオを実行(F5)、または、部分実行します。

正常にメールが送信できました

シナリオが正常終了し、宛先の受信トレイに届いていました。

ここまで実行してみて思ったのですが、Thunderbirdが簡単に認証できるのは、Thunderbirdの作成者が、OAuthのプロジェクトを本番環境で公開していて、アクセスに必要な「クライアントID」と「クライアントシークレット」をThunderbirdのソフトウェアのなかで、自動的にセットしているのかもしれません。APIの制限や利用料はないのだろうか?WinActorも同様のことはできないのだろうか???

以上です。