問い合わせ通知メールの受け取り設定(10分・佐瀬さま)

カタログサイトで問い合わせがあったとき、sales@hamakaze.co に知らせが届くようにします。

そのために、濱風さまの Google アカウントに小さなスクリプトを1つ置かせてください。


なぜこの形にしたか

メールを送る方法は3つ検討し、この形が濱風さまにとって一番安全だと判断しました。

方法 判断
この方法(Apps Script) ✅ 採用。新しい契約が増えず、下記のとおり権限が最小
外部のメール送信サービスに登録する 契約が1つ増える。DNS の設定も必要
Gmail の送信権限を開ける 🔴 採らない。下記参照

🔴 Gmail の送信権限を開ける方法を採らなかった理由

濱風さまの手順書に「送信スコープ(gmail.send)は意図的に外している。送信は必ず本人が Gmail の画面で押す」と書かれています。この方針は妥当だと考えます。

というのも、その権限は 「会社の誰としてでもメールを送れる」 性質のもので、 鍵が漏れたときの被害が大きいためです。通知1本のために開けるものではないと判断しました。

この方法なら、そのスクリプトは「カタログの通知メール」しか送れません。 誰かになりすまして送ることはできません。


手順(10分)

1. スクリプトを作る

  1. 共用のアカウント(…@hamakaze.co)で https://script.google.com を開く
    • ⚠ 個人のアカウントでは作らないでください。 作った方が退職されると止まります
  2. 左上の 「新しいプロジェクト」 をクリック
  3. 出てきたコードを全部消して、下の枠の中身をそのまま貼り付けます
  4. 左上のプロジェクト名を Tonyaa 通知メール に変えます(分かりやすくするためだけ)
// Tonyaa(需要カタログ)からの問い合わせ通知を、社内メールへ転送する。
// このスクリプトは「通知メール」しか送りません。他の用途には使えません。

// ▼ここだけ書き換えます(好きな長い文字列。パスワードのようなもの)
var SHARED_SECRET = 'ここに長いランダムな文字列を入れる';

// ▼届け先
var MAIL_TO = 'sales@hamakaze.co';

function doPost(e) {
  try {
    var body = JSON.parse(e.postData.contents);

    // 合言葉が違うリクエストは無視する(URLを知られても勝手に送られないように)
    if (body.token !== SHARED_SECRET) {
      return json({ ok: false, error: 'forbidden' });
    }

    // 宛先はこのスクリプトが決める。外から指定させない
    MailApp.sendEmail({
      to: MAIL_TO,
      subject: String(body.subject || '[Tonyaa] 新しい問い合わせ'),
      body: String(body.text || '')
    });

    return json({ ok: true });
  } catch (err) {
    return json({ ok: false, error: String(err) });
  }
}

function json(obj) {
  return ContentService
    .createTextOutput(JSON.stringify(obj))
    .setMimeType(ContentService.MimeType.JSON);
}

2. 合言葉を決める

コードの上のほう、ここに長いランダムな文字列を入れる を書き換えます。

3. 公開する

  1. 右上の 「デプロイ」→「新しいデプロイ」
  2. 歯車マーク → 「ウェブアプリ」 を選ぶ
  3. 設定を次のようにします
項目 選ぶもの
次のユーザーとして実行 自分(=このアカウント)
アクセスできるユーザー 全員

⚠ 「全員」で不安に感じられるかもしれませんが、合言葉が合わないリクエストは無視する 作りにしてあります。Google の仕組み上、外部のサーバーから呼ぶにはこの設定が必要です。

  1. 「デプロイ」 を押す
  2. 初回は 「アクセスを承認」 を求められます。案内に従って許可してください
    • 「このアプリは Google で確認されていません」と出たら、「詳細」→「(プロジェクト名)に移動」
  3. 表示される ウェブアプリの URL をコピーします

4. 澤田へ渡す

次の2つをお知らせください。

⚠ メール本文には貼らないでください。 定例のときに画面共有か、口頭でお願いします。


確認していただきたいこと


こちらでやること