[GAS ライブラリ] Gmail to Slack 転送ライブラリ

指定したGmailラベルに基づいて、メールを自動的にSlackチャンネルに転送するGoogle Apps Scriptライブラリです。

Demo Video

Detail

📋 説明

このライブラリは、特定のGmailラベルを監視し、新しいメールを自動的にSlackチャンネルに転送するシンプルで強力な方法を提供します。顧客からの問い合わせ、営業リード、その他重要なメールの即座通知が必要なチームに最適です。

主な機能

  • ✅ 多言語対応(英語/日本語)
  • ✅ カスタマイズ可能なメッセージフォーマット
  • ✅ タイムゾーン対応
  • ✅ 重複送信防止
  • ✅ エラーハンドリングとログ記録
  • ✅ 簡単な設定管理

🚀 クイックセットアップ

ステップ1: Slack Webhook URLの取得

このガイドに従ってSlack Webhook URLを作成してください: Slack Webhook URLの取得方法

ステップ2: プロジェクトにライブラリを追加

  1. 新しいGoogle Apps Scriptプロジェクトを作成
  2. 「ライブラリ」→「ライブラリを追加」に移動
  3. ライブラリID: [ 1kldK2eftHl5t8xngwYApWNWkX079ZlwFiMO0zJBhU47dCrj3YlVfXFOf ] を入力
  1. 識別子を設定: GmailSlackLib
  2. 保存

ステップ3: スクリプトを作成

function advancedEmailForwarder() {
  const config = {
    slack: {
      webhookUrl: "https://hooks.slack.com/services/YOUR/WEBHOOK/URL",
      channelId: "#alerts",
      botName: "Company Bot",
      botIcon: ":envelope:",
    },
    gmail: {
      targetLabels: ["Customer-Inquiry", "Sales-Lead"],
      processedLabelName: "Slack-Sent",
      timeWindowMinutes: 10,
      searchLimit: 100,
    },
    language: "ja", // 日本語
    timezone: "Asia/Tokyo"
  };
  
  const forwarder = GmailSlackLib.createForwarder(config);
  const result = forwarder.forwardEmails();
  console.log(result);
}

⚙️ 設定オプション

Slack設定

  • webhookUrl: Slack Webhook URL(必須)
  • channelId: 対象のSlackチャンネル(例:「#alerts」、「#general」)
  • botName: Slackでのボット表示名
  • botIcon: ボットの絵文字アイコン(下記オプションを参照)

Gmail設定

  • targetLabels: 監視するGmailラベルの配列
  • processedLabelName: 処理済みメールに追加するラベル
  • timeWindowMinutes: 新しいメールをチェックする時間窓(分単位)
  • searchLimit: 1回の実行で処理するスレッドの最大数

一般設定

  • language: インターフェース言語(「en」または「ja」)
  • timezone: 日付フォーマット用のタイムゾーン(下記の国コードを参照)

🎨 ボットアイコンオプション

Slackボット用の絵文字オプションから選択してください:

botIcon: ":envelope:",        // 📧 封筒
botIcon: ":email:",          // 📧 メール
botIcon: ":incoming_envelope:", // 📨 受信封筒
botIcon: ":postbox:",        // 📮 郵便ポスト
botIcon: ":mailbox:",        // 📫 郵便受け
botIcon: ":robot_face:",     // 🤖 ロボット
botIcon: ":computer:",       // 💻 コンピューター
botIcon: ":bell:",           // 🔔 ベル
botIcon: ":loudspeaker:",    // 📢 スピーカー
botIcon: ":mega:",           // 📣 メガホン
botIcon: ":warning:",        // ⚠️ 警告
botIcon: ":information_source:", // ℹ️ 情報
botIcon: ":white_check_mark:", // ✅ チェックマーク
botIcon: ":smiley:",         // 😄 笑顔
botIcon: ":smile:",          // 😄 笑顔
botIcon: ":sunglasses:",     // 😎 サングラス
botIcon: ":nerd_face:",      // 🤓 オタク
botIcon: ":ghost:",          // 👻 幽霊
botIcon: ":alien:",          // 👽 宇宙人

🌍 タイムゾーンの例

標準的なタイムゾーン識別子を使用してタイムゾーンを設定します。国固有のコードについては、こちらを参照してください: ISO 3166-1 国コード

一般的なタイムゾーンの例:

  • "Asia/Tokyo" - 日本
  • "America/New_York" - 米国東部
  • "America/Los_Angeles" - 米国太平洋
  • "Europe/London" - 英国
  • "Europe/Berlin" - ドイツ
  • "Asia/Shanghai" - 中国
  • "Asia/Seoul" - 韓国
  • "Australia/Sydney" - オーストラリア

Source Code

HTML
CSS
Javascript