Gmailで件名だけを他のメールやLINEに自動転送する - iGotEmail
Gmailで受信したメールの件名だけまたは本文を、別のアドレスやLINEに転送するスクリプトを作成しました。
機密保持やモバイルでの通信量軽減などのために、メール本文を自動転送せずに、メールを受信した通知を別のメールで確認したいときなどに使えます。
そのためのアドオンがネット上にありますが、そのアドオンはメール本文にアクセスできてしまうので、心配ですよね。
そこで、自分の管理下においたスクリプトで動作するように作成しました。
そのようにするためには、GASと呼ばれるGoogle Apps Scriptの開発者と同じ手順で設定をする必要があり、そのための知識が必要になってしまいます。
そこで、その知識がなくても、設定できるように具体的な手順をスクリーンショットで紹介します。
なお、本文だけでなく、メールの件名も秘匿したい場合には、受信日時と送信元アドレスだけにすることもスクリプトを修正すればできます。
以下のリンクから、内容を確認できます。
以下の内容は古い内容です。上記のリンク先に最新の内容があります。
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
プロジェクトを作成する
Google Apps Script (GAS) にアクセスします。
以下のようなページが表示されます。
画面右上のアイコンを見て、転送されたいメールアカウントでログインしているかを確認します。
異なる場合には、アイコンをクリックしてアカウントを切り替えます。
アカウントに間違えがないことを確認してから、「新しいプロジェクト」をクリックします。
「無題のプロジェクト」が作成されました。
「ファイル」メニューから「名前を変更」を選びます。
プロジェクト名を入力するポップアップ画面が表示されるので、「iGotEmail」と入力します。
プロジェクト名が変更されたことを確認します。
スクリプトを貼り付ける
「コード.gs」というところに、以下のように表示されています。
function myFunction() { } |
以下のスクリプトをコピーして、「コード.gs」のところに貼り付けて差し替えます。
/* /* You may need change this. */ /* You may change these. */ /* You should not change this. */ function iGotEmail() { const myThreads=GmailApp.search(query, 0, MaxMailFetch); if(myMessages.length > 0) { |
以下のようなかんじになります。
通知先メールアドレスを指定する
貼り付けた内容のうち、一番上にある以下の部分を変更します。
const mailDestination='通知先メールアドレス'; // 通知先アドレス |
mailDestinationに、メールを受信したことを通知する通知先のメールアドレスを指定します。
そのために、「通知先メールアドレス」の箇所に、通知先のメールアドレスを書きます。
たとえば、「sendto@example.com」に通知する場合には、以下のように変更します。
const mailDestination='sendto@example.com'; // 通知先アドレス |
この変更をしないと、貼り付けたスクリプトのままでは、正しく動作しないので、必ず変更してください。
これにより、あなたのgmailがメールを受信すると、その日時、送信元、宛先、件名が、「sendto@example.com」宛てに通知されます。
mailFilterに、通知する対象となる条件を指定することもできます。
貼り付けたスクリプトは、以下のようになっています。
const mailFilter='is:unread'; // 通知対象メールの条件 |
「is:unread」は、未読のメールという条件になり、すべての未読メールが通知されます。(通知されるまでに、既に既読にしたメールは通知されません。)
この「mailFilter」の指定を変更して、通知対象となるメールを選択することができます。
たとえば、自分がCCやメーリングリストに入っているメールを除外したいなら、「to:()」という条件を付けることができます。
「to:(監視するアドレス@example.com)」により、メールの宛先に「監視するアドレス@example.com」がある場合という条件になります。この条件により、CCで受け取った場合には、通知しないということになります。
たとえば、自分のメールアドレスが「myself@example.com」であれば、以下のように指定すると、CCやメーリングリストで受信したメールは通知されなくなります。
const mailFilter='to:(myself@example.com) is:unread'; // 通知対象メールの条件 |
メールの送信者を選択したい場合には、「from:()」を使うことができます。たとえば、メールの送信者が「bestfriend@example.com」のメールを通知するなら、以下のように変更します。この場合は、「is:unread」をなくしたので、既読であっても通知されます。
const mailFilter='from:(bestfriend@example.com)'; // 通知対象メールの条件 |
「mailDestination」は必ず変更してください。
「mailFilter」は、必要があれば変更してください。
「コード.gs」の左横に「*」というマークが表示されています。これは、ファイルがまだ保存されていないことを示しています。
「ファイル」メニューの「保存」をクリックして保存します。
「*」が消えたことを確認します。
動作を確認する
「実行」メニューから「関数を実行」を選択してスクリプトを実行してみます。
ポップアップ画面が表示されます。
このポップアップは、作成したスクリプトに対してGmailにアクセスすることの許可を与えるかの確認です。
求めている内容に間違えがないかを確認するため、「許可を確認」をクリックしてください。
通知対象となるメールアカウントを選択します。(通知先ではなく、通知されるアカウントになります。)
許可を与えようとしているアプリ(作成したスクリプトのこと)が、Googleによって確認されていないことを警告してきます。
「詳細」をクリックします。
「iGotEmail(安全ではないページ)に移動」をクリックします。
許可を与えるアプリが「iGotEmail」であり、アカウントの選択が間違っていないことを確認して、「許可」をクリックします。
スクリプトを実行しているという表示が出ます。(しばらくするとそのまま消えます。)
エラーがある場合には、赤色の表示がされますが、念のため、実行結果を確認します。
「表示」メニューの「ログ」をクリックします。
ログ画面がポップアップ表示され、通知したメールの件数がログに表示されます。この場合は、「1通のメールを通知しました。」と表示されています。
「OK」をクリックします。
10分以内に受信したメールがない場合は、「0通」と表示されます。
その場合には、ダミーのメールを送って10分以内に、もういちど「実行」メニューから「関数を実行」でスクリプトを実行して、ログを確認してください。
エラーがあった場合には、貼り付けや変更が失敗している可能性がありますので、確認してください。
以上で問題なければ、過去10分以内に受信したメールの通知ができるようになりました。
定期的に通知するように設定する
このスクリプトを10分ごとに実行するように設定します。
「編集」メニューの「現在のプロジェクトのトリガー」をクリックします。
「iGotEmail > トリガー」と表示されていることを確認します。
画面右下にある「トリガーを追加」をクリックします。
トリガー追加のポップアップ画面が表示されます。
以下の画面を参考に「分ベースのタイマー」と「10分おき」を選択して、「保存」をクリックします。
以上で、設定は完了です。
作成したスクリプトが、10分間ごとにGmailを確認して、メールを受信していれば、指定したメールアドレスに通知を送信します。
この時間間隔を変更する場合には、スクリプトの修正が必要になります。
たとえば、1時間ごとに確認する場合には、スクリプト内の「mailInterval」を「60」に修正してから、上記のトリガーを「1時間おき」に変更してください。
なお、用意したスクリプトでは、メール本文や添付ファイルなどもすべてを通知するように修正することができます。
その場合には、Google サービスのクォータに注意する必要があります。
たとえば、メール本文が最大200kB、添付ファイルが最大25MBなどです。メールをすべて転送するのであれば、ここで紹介したスクリプトを使うのではなく、Gmailの転送設定をするのがよいと思います。
11月 19, 2020 | Permalink
コメント