このコードは、Gmailに届いたメールをDiscordの指定されたチャンネルに投稿するGASのコードです。
コードの流れ
WEBHOOK_URL
変数に、DiscordのウェブフックURLを設定します。SUBJECT_MAPPINGS
オブジェクトに、メールの件名とそのメールをDiscordに投稿するかどうかの設定を定義します。getSubjectMapping()
関数で、メールの件名からSUBJECT_MAPPINGS
オブジェクトの対応する値を取得します。convertHtmlToDiscordFormat()
関数で、メールの本文からDiscordのフォーマットに変換します。extractMessageInfo()
関数で、メールの件名、日付、本文、色を取得します。checkNewEmails()
関数で、未読のメールすべてを取得します。checkNewEmails()
関数のループ内で、取得したメールすべてについて、extractMessageInfo()
関数でメールの情報を取得します。extractMessageInfo()
関数で取得したメールの情報を、Discordのウェブフックに投稿します。- メールを既読にします。
コードの詳細
WEBHOOK_URL
変数は、DiscordのウェブフックURLを設定します。ウェブフックURLは、Discordのサーバーの設定画面から取得できます。SUBJECT_MAPPINGS
オブジェクトは、メールの件名とそのメールをDiscordに投稿するかどうかの設定を定義します。オブジェクトのキーはメールの件名、値は次の3つの属性を持つオブジェクトです。title
: Discordのチャンネルに表示するタイトルcolor
: Discordのチャンネルに表示する色isTarget
: メールをDiscordに投稿するかどうか この例では、お問い合わせ
、ご家庭申し込み
、ボランティア申し込み
、ルドルフアンケート
のメール件名については、Discordに投稿するように設定しています。
getSubjectMapping()
関数は、メールの件名からSUBJECT_MAPPINGS
オブジェクトの対応する値を取得します。convertHtmlToDiscordFormat()
関数は、メールの本文からDiscordのフォーマットに変換します。Discordのフォーマットでは、HTMLの改行やタグは表示されません。この関数では、改行を\n
に、タグを空文字列に置換します。extractMessageInfo()
関数で、メールの件名、日付、本文、色を取得します。checkNewEmails()
関数で、未読のメールすべてを取得します。checkNewEmails()
関数のループ内で、取得したメールすべてについて、extractMessageInfo()
関数でメールの情報を取得します。extractMessageInfo()
関数で取得したメールの情報を、Discordのウェブフックに投稿します。- メールを既読にします。
使い方
このコードを実行するには、次の手順を実行します。
- GASプロジェクトを作成し、コードを貼り付けます。
WEBHOOK_URL
変数に、DiscordのウェブフックURLを設定します。- トリガーを設定します。
トリガーは、一定期間ごとにこのコードを実行するように設定します。例えば、1分に1回実行するように設定するには、次の手順を実行します。
- 編集 > 現在のプロジェクトのトリガーからトリガーの設定画面を開きます。
- トリガーの追加から時間主導型を選択します。
- チェック間隔を 1 分に設定します。
- トリガーの名前を入力し、チェックする関数を
checkNewEmails()
に設定します。 - 保存します。
この設定で、1分に1回、未読のメールすべてを取得してDiscordに投稿するようになります。