Gmailを自動転送するデベロッパーアドオン「Simple Gmail Auto Forward Ruler」
「Simple Gmail Auto Forward Ruler」はブラウザ版のGmail用に開発した、定義したルールに基づいてメールの自動転送を行うデベロッパーアドオンです。
Thunder birdやWindows Liveメールに搭載されているメッセージルールやメッセージフィルタのように、転送ルールを設定してメールが自動で転送されるようにブラウザ版のGmailの機能を拡張します。
このブログの方針故、もちろんアドオンは無料でお使いいただけます。
当面はデベロッパーアドオンとして配信し、基本的にはメールウェアになります。
本来は完全にフリーウェアとしてGCPに載っけて配信しようと思っていましたが、制限付きスコープの扱いがもはや現実的ではありませんでした。
・・・もう少しフリーウェアなアドオンの開発に自由をください(´・ω・`)
もしこれが緩和されたら・・・されるのか?そのうち申請しなおす予定(未定・希望薄)です。
メールウェア
必ず用途をお書き合わせの上で「product@cattlemute.com」まで
(@を半角アットマークにご変更後、お送りください。)
※こちらはGmailに独自開発したソフトウェアであるため、オープンソースソフトウェアではありません。これまでにこのブログで配信・配布してきたものとはライセンスが全く異なります。
※独自のライセンスを適用していますので、ご使用の前に必ずソフトウェアの使用・利用規約をよくお目通しください。
※上記へメールの送信が行われた時点で、これ以下の内容に対してご了承いただけたものとします。アドオンの注意点も記載しておりますので、よくご覧いただくようお願いします。
開発経緯
とある企業の方よりそういうアドオンがあったら便利なのに、というつぶやきをリアルにいただいたことから開発を始めました。
その方はメールクライアントを完全にブラウザ版のGmailへ移行させようとしていたようですが、それまで使っていたメールソフトウェアで顧客から受信したメールを、業務連絡等に使用して従業員に特定何人・複数人に転送すると言った運用を行っていたそうです。
ですが、これに相当する機能がGmailには存在せず、デフォルトの転送機能では実質的に自分自身のメールアドレス宛にしか転送できないため、ブラウザ版のGmail自体の導入を断念したそうです。
確かにブラウザ版のGmailの転送機能は限定的なので、このような設定を行っている方にとっては使い勝手が悪いものかもしれません。
それを解決するためにどうせならフリーで使えるものを自分の手で作ってしまおうということで開発しました。
機能内容
アドオンは現在、以下の機能を備えています。
- ルールに基づいて抽出したメールを自動で転送・送信
- Gmailにログインしてなくても、自動で転送・送信可能
- Gmailのデフォルトアカウントは元より、「アカウントとインポート」で設定したメールにも対応
- 「宛先」「件名」「本文」を対象としたルール定義
- ルールは上記にそれぞれ、「部分一致」「完全一致」「完全不一致」「部分不一致」に対応
- 単一・複数を問わないメールの転送先・送信先の設定
- 飽くまでおまけの自動返信機能
アドオンの仕様と注意点
アドオンの仕様と注意点については以下になります。
- こちらのアドオンはデベロッパーアドオンになります。
- Google Apps Scriptで開発しております。
Googleによる制約がそれなりにあるため、設計段階でいろんなリミッターを仕込んでいます。
この制約は、スクリプトレベルではなにをどうしてもなんともしようがないため、必ずご使用前にGoogleのアドオン規約をご確認ください。 - 転送・送信を行うメールデータの抽出は受信ボックスのデータを参照します。
Gmailの設定でアーカイブされているメール等については処理対象外です。(特に「アカウントとインポート」の設定でメールをアーカイブしている場合はご注意ください) - 転送・送信は定期間隔で実行されます。(メール受信時に即実行ではありません。)
この際のメールの抽出処理は60分間に100スレッド、30分間に80スレッド、10分間に50スレッド程度のメールを最大抽出対象とします。(デフォルト設定で60分間、変更可)
それを超えるメールに関しては抽出対象になりません。 - Gmailでは現行でミリ秒単位での抽出処理が不可能のため、定期間隔での実行の際にメールの到着がミリ秒単位で遅れて重なった場合はごく稀に転送・送信が行われない場合があります。(こちらは不具合ではなく仕様になります。)
- 転送・送信時の一日あたりのメール数がGoogle Apps Scriptで定められた量を超えたメールについては処理されません。(Googleアカウントを無料で利用している場合は100件、Google Workspace又は旧G suite加入済の場合は1500件)
- 転送・送信自体にかかる総合計時間が4分を超える場合は処理されません。
- 添付ファイルが大きすぎたり、多すぎたりするメールについては処理されません。
- 処理されなかった分のメールについては下書きへ保存されます。
ただし、Googleの定めるアドオンの制約のため、実行毎の総合計時間が6分間を上回る場合は全ての処理が中断・破棄されます。 - その他、制約的に組み込めていない部分についてはバージョンアップで順次対応予定です。(メール自体の容量が400KBを超えた場合の対応等)
- 同一アカウント内でマルチウィンドウ又はタブでの多重起動は不可に設定させていただいております。(こちらは画面の有効期限切れとして表示されます。)
- アドオンの恒久データ保持にプロパティ、一時データの保持にキャッシュを使用します。
- アドオンのルールデータ・ロケールデータはGoogleドライブ内に保存されます。
インストール・セットアップ方法
アドオンのインストール方法は以下になります。
- product@cattlemute.comのメールより送信されたアドオンファイルのURLを開きます。(cattlemuteの個人持ちのGoogleドライブに保管しています。)
- Apps Scriptのエディタ画面が開くので、左サイドのメニューより「概要」を押下します。
- 「プロジェクトの概要」が表示されますので、右側に表示されたアイコンより「コピー」を行います。
- ご自身のGoogleアカウント上にSimple Gmail Auto Forward Rulerのコピーが作成されます。
コピー完了後に、スクリプトのメニューより「選択した関数を実行」を押下します。
- 「選択した関数を実行」を押下すると、「承認が必要です」のモーダル画面が開きますので、「権限を承認」を押下します。
- アカウントの選択画面が表示されるため、ご自身のGoogleアカウントを選択してください。
- 「このアプリはGoogleで確認されていません。」が表示されたら、「詳細」を押下します。
(※デベロッパーアドオンのため、この画面が表示されます。)
- 「詳細」を押下してドロップダウンされた内容より、「Simple Gmail Auto Forward Ruler(安全ではないページ)に移動」を押下します。
- 「Googleアカウントへのアクセスのリクエスト」が表示されるため、「許可」を押下します。
- 関数が実行完了されたら、続いて画面上部の「デプロイ」ボタンを押下します。
- ドロップダウンされたメニューより、「デプロイをテスト」を押下してください。
- 「デプロイをテスト」のモーダル画面が開きますので、「インストール」のボタンを押下してアドオンのインストールを行います。
- 左下に「アドオンをインストールしました。」と表示されたらインストールは完了です。
- Gmailの画面より、アドオンがインストールされたことをご確認ください。
- アドオンのアイコンを押下すると、初期状態ではcattlemuteのライセンスが表示されます。
同意できる場合、「同意する」を押下するとそのままセットアップが完了します。
アドオンの仕様詳細
デベロッパーアドオンの仕様のエビデンスとして、以下の内容を開示します。
本来はGCPに投げ込む予定で開発していたため、いくらデベロッパーアドオンと言えど、このあたりはきちんとしておきます。
OAuth認証について
アドオンは以下のOAuth認証を使用しています。
これ以外の用途でアドオンが規定以外の動作を要求すること、ユーザーの意思に反した動作を行うことは一切ありません。
- https://www.googleapis.com/auth/gmail.send(Gmailでのメール転送・送信に使用)
- https://www.googleapis.com/auth/gmail.readonly(Gmailの受信ボックスアクセスに使用)
- https://www.googleapis.com/auth/gmail.compose(Gmailの下書き作成に使用)
- https://www.googleapis.com/auth/gmail.addons.execute(Gmailでのアドオン実行に使用)
- https://www.googleapis.com/auth/script.scriptapp(トリガーとトークンの生成に使用)
- https://www.googleapis.com/auth/drive(Googleドライブでのアドオンのデータ保存に使用)
- https://www.googleapis.com/auth/drive.readonly(Googleドライブでのアドオンのデータ読込に使用)
- https://www.googleapis.com/auth/userinfo.email(メール転送・送信時のユーザー名の取得に使用)
- https://www.googleapis.com/auth/script.send_mail(スクリプトからのメール自動転送・送信に使用)
- https://www.google.com/m8/feeds(APIの承認に使用)
Googleドライブの使用について
アドオンは以下のフォルダをユーザーのGoogleドライブの直下に生成します。
また、生成したフォルダ内に以下のファイルを生成します。
- 設定保管フォルダ「SimpleGmailAutoForwardRuler」
- データベースファイル「sgmafruler.json」
- ロケールファイル「sgmafruler-lang.json」「sgmafruler-lang-xxxxx.json」(xxxxxはロケール名)
プロパティについて
アドオンは以下のプロパティをユーザーレベルで生成します。
- sgmafruler_increment_xxxxx(xxxxxはJSONのインデックス)
- sgmafruler_license
- sgmafruler_models_ver
- sgmafruler_tables_ver
- sgmafruler_serializes_ver
- sgmafruler_locale_ver
- sgmafruler_token
- sgmafruler_latest
- sgmafruler_resetcode
- sgmafruler_interval
キャッシュについて
アドオンは以下のキャッシュをユーザーレベルで生成します。
- sgmafruler_work
トリガーについて
アドオンは以下のトリガーを生成します。
- 「SGMAFRulerTriggers.Run」(1レコード・2レコード・6レコードいずれか)
更新履歴
- 2022/05/25
Ver 0.1.0をロールアウトしました。