企業によっては、セキュリティやコンプライアンス等の規定によりメールの自動転送(他メールアドレスへの全自動転送)が禁止されてものと思います。Google アカウントが会社で管理されているのであれば設定が無効化されているでしょう。
今回は GAS(Google Apps Script)を利用し Gmail の自動転送を擬似的に再現します。
※なお、企業ごとの規定理由によってはかなりグレーな方法であることをご認識おきください。
1. GAS プロジェクトの作成
Apps Script トップより新規プロジェクトを作成します。
const FORWARD_MAIL_ADDRESS = '【転送先メールアドレス】';
const MY_MAIL_ADDRESS = '【転送元メールアドレス】';
const FIRE_INTERVAL_MINUTES = 1;
function forward() {
const now = Math.floor(new Date().getTime() / 1000);
const interval = now - (60 * FIRE_INTERVAL_MINUTES);
const query = 'is:unread' + ' ' + '-from:' + MY_MAIL_ADDRESS + ' ' + 'after:' + interval;
const threads = GmailApp.search(query);
const messages = GmailApp.getMessagesForThreads(threads);
for (const i in messages) {
const lastNo = messages[i].length - 1;
const subject = messages[i][lastNo].getSubject();
const body = messages[i][lastNo].getPlainBody();
GmailApp.sendEmail(FORWARD_MAIL_ADDRESS, subject, body);
}
}
コードの流れは読めばわかるかと思います。
肝は query
で定義される Gmail 検索キーワードでしょうか。
未読で、転送元メールアドレスでない、実行間隔内に届いたメールが対象となります。
GAS は実行の間隔として定義できるので、その間隔時間[分]を FIRE_INTERVAL_MINUTES
で定義してあげてください。
2. GAS プロジェクトのデプロイ
トリガーを宣言します。
- 実行する関数を選択
→ forward
を選択
- 時間ベースのトリガーのタイプを選択
→ 「分ベースのタイマー」を選択
- 時間の間隔を選択(分)
→ 「1分おき」を選択(しました、私は。)
※GASの実行回数や実行時間には制限があります。詳しくは Google サービスの割り当て - 現在の制限 をご参照ください。
おまけ
私はメール通知を受け取るためだけにメーラーを常時バックグラウンド起動しておきたくありません。「 Slack で」スケジュールやメールも管理したい主義でいます。
ので、私は「Slack へのメールの転送」機能を利用し Slackbot 転送先メールアドレスを発行、発行したメールアドレスを FORWARD_MAIL_ADDRESS
に設定しています。
Slack を最大限を活用するアイデアとして、来週は「Slackとカレンダーアプリを連携して生産性が爆上げ」を執筆予定です。