それでは早速、設定を始めましょう。
手順は大きく分けて3つだけです。

まずは、通知を受け取るための「自分専用のDiscordサーバー」を用意し、
そこから「Webhook URL(専用の住所)」を発行します。

Step 1

【準備】自分専用のサーバーを作って「住所」をもらう

1. 自分専用のサーバーを作る(持っていない場合)

通知を受け取るための「Webhook」という設定は、
自分が管理人のサーバーでしか作れません。

もし、あなたが管理者権限を持っているサーバーがない場合は、
新しく作りましょう(無料・30秒で終わります)。

  • Discord左側のサーバー一覧の一番下にある「+(サーバーを追加)」をクリック
  • 「オリジナルの作成」をクリック
  • 「自分と友達のため」をクリック
  • サーバー名は「自分用通知」など適当でOK。「新規作成」をクリック

これで、誰にも見られないあなただけのサーバーができました。
ここなら失敗しても誰にも迷惑がかからないので、安心して作業できます。

2. 通知を送りたいチャンネルの編集画面を開く

作成したサーバーにある「一般」チャンネル、
または新しく作ったテキストチャンネルにマウス矢印を重ねると
右側に表示される「歯車マーク(チャンネルの編集)」をクリックします。

作成したサーバーにある「一般」チャンネル、
または新しく作ったテキストチャンネルにマウス矢印を重ねると
右側に表示される「歯車マーク(チャンネルの編集)」をクリックします。

チャンネル設定

3. 連携サービスからWebhookを作成する

左側のメニューにある「連携サービス」をクリックし、
その中にある「ウェブフック」を選択します。

左側のメニューにある「連携サービス」をクリックし、
その中にある「ウェブフック」を選択します。
「新しいウェブフック」ボタンを押してください。

4. ウェブフックのURLをコピーする

「Spidey Bot」のようなデフォルトの名前でウェブフックが作成されます。
名前は「Gmail通知」などに変更しておくと分かりやすいです(そのままでもOK)。

一番重要なのが、下にある「ウェブフックURLをコピー」というボタンです。
これをクリックして、URLをコピーしてください。

一番重要なのが、下にある「ウェブフックURLをコピー」というボタンです。
これをクリックして、URLをコピーしてください。

ウェブフックURLをコピー

これが、これから作る自動化ツールの「送り先の住所」になります。
次のステップですぐに使いますので、メモ帳などに貼り付けておくか、
コピーしたままにしておいてください。

Step 2

【コピペ】魔法のコードを貼り付けて、1箇所だけ書き換える

次に、実際に通知を行うプログラム(Google Apps Script)を設定します。
「プログラム」と聞くと難しそうですが、やることは「貼り付け」だけです。

1. Google Apps Scriptを開く

Googleドライブを開き、左上の「+ 新規」ボタンをクリックします。
「その他」>「Google Apps Script」を選んでください。

(もし見つからない場合は、「アプリを追加」からGoogle Apps Scriptを探して追加してください)

2. 元あるコードを消して、以下のコードを貼り付ける

画面が開くと、function myFunction() {...} という文字が最初から書かれています。
これをすべて消して、真っ白にしてください。

その上で、以下のコードをすべてコピーして、そのまま貼り付けてください。

function sendGmailToDiscord() {
  
  // ==================================================
  // ★設定エリア:ここだけ書き換えてください★
  // ==================================================
  
  // 1. Step1でコピーした「DiscordのウェブフックURL」を''の間に貼る
  const webhookUrl = 'ここにコピーしたWebhookURLを貼り付けてください';

  // 2. 通知したいメールの検索条件(Gmailの検索窓と同じ書き方)
  // 以下の例を参考に書き換えてください。
  
  // 例1:Redbubbleで「売れた時」だけ通知(件名で指定)
  // const searchQuery = 'subject:"You\'ve Made A Sale" is:unread';
  
  // 例2:チケット当選など、件名に「当選」が含まれる場合
  // const searchQuery = 'subject:当選 is:unread';

  // 例3:送信者を指定したい場合
  // const searchQuery = 'from:Redbubble is:unread';

  // ★実際に使う条件をここに書いてください(初期値はRedbubbleの売上通知)
  const searchQuery = 'subject:"You\'ve Made A Sale" is:unread';

  // ==================================================
  // ここから下は書き換えなくてOKです
  // ==================================================

  // 指定した条件の未読メールを検索(最新の10件まで取得)
  const threads = GmailApp.search(searchQuery, 0, 10);
  
  // メールが見つからなかったら終了
  if (threads.length === 0) {
    return;
  }

  // 見つかったメールを順番に処理
  threads.forEach(thread => {
    const messages = thread.getMessages();
    
    messages.forEach(message => {
      // まだ未読のメッセージだけを処理する
      if (message.isUnread()) {
        
        // メールの情報を取得
        const subject = message.getSubject(); // 件名
        const sender = message.getFrom();     // 送信者
        const date = message.getDate();       // 受信日時
        const body = message.getPlainBody().substring(0, 200); // 本文(最初の200文字だけ)

        // Discordに送るメッセージを作成
        const payload = {
          content: `📩 **新しいメールが届きました!**\n\n**件名**: ${subject}\n**送信者**: ${sender}\n**日時**: ${date}\n\n${body}...\n\n----------`
        };

        // Discordに送信実行
        UrlFetchApp.fetch(webhookUrl, {
          method: 'post',
          contentType: 'application/json',
          payload: JSON.stringify(payload)
        });

        // 重複通知を防ぐために「既読」にする
        message.markRead();
      }
    });
  });
}

3. 「設定エリア」を自分のものに書き換える

コードの上の方にある // ★設定エリア という部分を見てください。
みなさんが書き換えるのは、以下の2箇所だけです。

① DiscordのURLを貼る場所

const webhookUrl = '...';

'ここにコピーしたWebhookURLを貼り付けてください' という文字を消して、
Step 1でコピーしておいたDiscordのURLを貼り付けます。

【重要】 URLの前後のチョンチョン(シングルクォーテーション ' )は絶対に消さないでください。
これを消すとエラーになります。

② 通知したいメールの条件

const searchQuery = '...';

ここがこのツールの肝です。「どのメールを通知するか」を細かく指定します。
基本は '条件 is:unread' という書き方です。

以下のパターンから、自分の目的に合うものを選んで書き換えてください。

【パターンA】特定の件名のメールだけ通知したい(おすすめ)

私の場合はRedbubbleで「売れた時」だけ通知したかったので、件名で絞り込みました。
実際に届くメールの件名は「You've Made A Sale - [オーダーナンバー]」だったので、
以下のコードになります。

'subject:"You\'ve Made A Sale" is:unread'

※英語の件名に含まれるアポストロフィ(')の前には、必ず \ マークをつけて You\'ve としてください。

【パターンB】件名に特定の日本語が含まれる場合

チケット当選や、急ぎの連絡などに便利です。

'subject:当選 is:unread'
'subject:至急 is:unread'

対象になるメールの例:
「【抽選結果】当選のお知らせ」
「【至急】明日の会議について」

【パターンC】送信者を指定したい場合

特定の相手からのメールをすべて通知したい場合に使います。

'from:Redbubble is:unread'
【パターンD】最強の組み合わせ(送信者 + キーワード)

「〇〇さんからのメール」かつ「本文に"請求書"が含まれる」場合など、
条件をスペースで区切ると「AND検索」になります。

'from:Redbubble "You\'ve Made A Sale" is:unread'

※注意点 必ず最後に is:unread (未読)という言葉を残してください。
これがないと、過去のメールまで遡って何度も通知が来てしまいます。

4. テスト実行と権限の承認

書き換えが終わったら、上のフロッピーディスクのアイコン(保存)を押して
プロジェクト名を適当に(「Gmail通知」など)入力して保存します。
その後、「実行」ボタンを押してください。

※初回のみ「権限の承認」が必要です

少し怖い画面が出ますが、自分で作ったプログラムへの警告なので安全です。
以下の手順で進めてください。

  1. 「権限を確認」をクリック
  2. 自分のGoogleアカウントを選択
  3. 「このアプリはGoogleによって確認されていません」と出たら、左下の「詳細」をクリック
  4. 「(プロジェクト名)に移動(安全ではないページ)」をクリック
  5. 最後に「許可」をクリック

これで、設定した条件に合う未読メールがあれば、Discordに通知が飛ぶはずです!
(テストをする際は、自分宛てに条件に合うメールを送って、未読のままにしてから実行ボタンを押してみてください)

Step 3

【放置】勝手にメールを見張ってくれる設定をする

最後に、このプログラムが自動で動き続けるように「トリガー」を設定します。
これを行わないと、手動で「実行」ボタンを押した時しか通知が来ません。

1. トリガー設定画面を開く

左側のメニューにある「目覚まし時計のアイコン(トリガー)」をクリックします。

1. トリガー設定画面を開く

左側のメニューにある「目覚まし時計のアイコン(トリガー)」をクリックします。

トリガー設定を開く

2. トリガーを追加する

右下の「+ トリガーを追加」ボタンをクリックします。

3. 実行タイミングを設定する

設定画面が出てくるので、以下のように設定してください。

  • 実行する関数を選択: sendGmailToDiscord
  • 実行するデプロイを選択: Head
  • イベントのソースを選択: 「時間主導型」
  • 時間ベースのトリガーのタイプを選択: 「分ベースのタイマー」
  • 時間の間隔を選択(分): 「15分おき」(または「5分おき」など)
  • 時間の間隔を選択(分): 「15分おき」(または「5分おき」など)
  • トリガー設定詳細

    私はできるだけリアルタイムに通知して欲しいので1分おきにしています。

    4. 保存する

    最後に「保存」ボタンを押します。

    お疲れ様でした!
    これですべての設定は完了です。

    あとはブラウザを閉じてしまっても大丈夫です。
    Googleのサーバーが、指定した時間ごとに勝手にメールボックスをチェックし、
    条件に合うメールがあればDiscordに知らせてくれます。