【GAS応用】メール送信元(info等)をポップアップで選択!複数アドレスを使い分けるコードとチーム運用のコツ

前回の記事([【実例コード付き】GASでスプレッドシートからメール自動送信])では、スプレッドシートのリストからメールを自動送信する基本の作り方を解説しました。

今回はその応用編です!
スプレッドシートとGASを使ってシステムを作った際、こんな悩みにぶつかりませんか?

「デフォルトだと自分の個人名アドレス(suzuki@〜)から送られてしまう…」
「お客様へのお知らせは、会社の代表アドレス(info@〜)から送信したい!」

実はGASを使えば、**「実行ボタンを押した瞬間に、送信元アドレスをポップアップ画面で選べる仕組み」**を簡単に作ることができます。

ただし、これを無料のGoogleアカウント(@gmail.com)で設定してチームで使い回すと、セキュリティ面で思わぬトラブルに繋がることがあります。

この記事では、無料版で代表アドレスを使い回すリスクと、Google Workspace(有料版)を使った安全なチーム運用のコツ、そして実務ですぐに使える「ポップアップ選択式」のGASコードを完全図解で解説します。


1. 無料のGmailで「代表アドレス」を使う際のリスク

無料のGmailアカウントでも、設定(エイリアス)を追加すれば別のアドレスからメールを送ることは可能です。しかし、これを会社の「代表アドレス」としてチームで運用しようとすると、以下の壁にぶつかります。

  • ① パスワードの使い回しによる情報漏洩リスク
    • 無料版で「info@社名.com」のような共通アドレスを作って複数人で管理しようとすると、1つのGoogleアカウントのIDとパスワードをスタッフ全員で共有することになります。誰がいつログインしたか分からず、セキュリティ上非常に危険です。
  • ② 退職時の引き継ぎトラブル
    • パスワードを知っているスタッフが退職した際、すぐにパスワードを変更しないと、外部から会社の代表メールを見られ続けてしまうという恐ろしい事態が発生します。

これらのリスクをなくし、安全に「代表アドレスからの自動送信」をチームで運用するには、Google Workspaceの導入が不可欠です。


2. Workspaceの「グループアドレス」でチーム運用が劇的に安全に!

月額数百円のGoogle Workspace(有料版)を導入すると、個人アカウントとは別に**「グループアドレス(メーリングリスト)」**という機能が使えるようになります。

「info@」などの代表アドレスを無料で無制限に作れる

Workspace環境(@社名.com等)であれば、「info@」「support@」「sales@」といった代表アドレス(グループアドレス)を、追加のライセンス費用なしで無制限に作成できます。

パスワード共有なし!個人のアカウントから「info@」で送信可能

これが最大のメリットです。スタッフ各自の安全な個人アカウント(suzuki@社名.com等)でログインしたまま、送信元だけを「info@社名.com」に切り替えてメールを送ることができます。パスワードを共有する必要は一切ありません。

退職者が出た場合も、管理者がその人のアカウントを停止するだけで、「info@」へのアクセス権も自動的に剥奪されるため、情報漏洩を完璧に防げます。


3. 【コピペOK】送信元をポップアップで選択するGASコード

ここからは、実際にスプレッドシート上で「送信元アドレスを選択するポップアップ」を出すためのGASコードを解説します。

⚠️ 事前準備:エイリアスの登録
この機能を使うには、ご自身のGmail設定(歯車マーク > すべての設定 > アカウント)の「名前」の項目で、送信元として使いたい別名アドレス(エイリアス)を事前に追加しておく必要があります。

【無料】1アカウントで複数のメールアドレスを持つ「メールエイリアス」の設定方法

ステップ1:GASエディターにコードを貼り付ける

スプレッドシートの「拡張機能」>「Apps Script」を開き、以下のコードを貼り付けて保存します。

function sendEmailsWithPopup() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const data = sheet.getDataRange().getValues();
  const ui = SpreadsheetApp.getUi(); // ポップアップを出すための機能
  
  // Gmailに登録されているエイリアス(別名アドレス)を取得
  const aliases = GmailApp.getAliases();
  let fromAddress = ""; 
  
  // エイリアスが登録されている場合、ポップアップを表示
  if (aliases.length > 0) {
    let message = "送信元のアドレスを番号で選択してください。\n\n";
    message += "0: デフォルト(" + Session.getActiveUser().getEmail() + ")\n";
    
    // 登録されているエイリアスをリスト化
    for (let j = 0; j < aliases.length; j++) {
      message += (j + 1) + ": " + aliases[j] + "\n";
    }
    
    // ポップアップを表示して入力を待つ
    const response = ui.prompt("送信元アドレスの選択", message, ui.ButtonSet.OK_CANCEL);
    
    // キャンセルボタンが押されたら終了
    if (response.getSelectedButton() !== ui.Button.OK) {
      ui.alert("送信をキャンセルしました。");
      return;
    }
    
    // 入力された番号を取得
    const selectedNum = parseInt(response.getResponseText());
    if (selectedNum > 0 && selectedNum <= aliases.length) {
      fromAddress = aliases[selectedNum - 1]; // 選択されたアドレスをセット
    } else if (selectedNum !== 0) {
      ui.alert("無効な番号です。処理を中止します。");
      return;
    }
  }
  
  let sendCount = 0; // 送信件数のカウント用
  
  // 2行目から順番に処理(1行目は見出し)
  for (let i = 1; i < data.length; i++) {
    const name = data[i][0];        // A列:名前
    const email = data[i][1];       // B列:メールアドレス
    const status = data[i][2];      // C列:ステータス
    
    // ステータスが「未送信」の場合のみ送信
    if (status === "未送信" && email !== "") {
      const subject = `【お知らせ】${name}様へ`;
      const body = `${name}様\n\nいつもお世話になっております。`;
      
      // 送信元(from)のオプションを設定して送信
      if (fromAddress !== "") {
        GmailApp.sendEmail(email, subject, body, { from: fromAddress });
      } else {
        GmailApp.sendEmail(email, subject, body); // デフォルトで送信
      }
      
      // 送信完了後にC列を更新
      sheet.getRange(i + 1, 3).setValue("送信完了");
      sendCount++;
    }
  }
  
  // 完了ポップアップを表示
  if(sendCount > 0) {
    ui.alert(sendCount + "件のメールを送信しました!");
  } else {
    ui.alert("送信対象(未送信)がありませんでした。");
  }
}

ステップ2:ボタンに割り当てて実行する

スプレッドシートの「挿入」>「図形描画」で送信ボタンを作成し、右上の「︙」から「スクリプトを割り当て」を選択。sendEmailsWithPopup と入力して確定します。

ボタンをクリックすると、画面中央に送信元を選ぶポップアップが表示され、番号を入力するだけで指定した代表アドレスからの自動一斉送信が完了します!


4. まとめ:チームで自動化するならWorkspace環境へ!

GASを使って「ポップアップで代表アドレスを選べる仕組み」を作れば、まるでプロが開発した専用システムのように、現場のスタッフが迷わず安全に業務を行えるようになります。

個人でテスト稼働させる段階なら無料アカウントでも十分ですが、「会社のお知らせをinfoアドレスから送る」「複数人のスタッフでシステムを運用する」といったフェーズに入ったら、情報漏洩を防ぐためにGoogle Workspace環境への移行が必須です。

Google Workspaceは最初の14日間は完全無料で試すことができます。導入の際は、初年度が10%安くなる以下のプロモーションコードもぜひ活用してください。

▶ 【関連記事】 【10%OFF特典あり】Google Workspaceを安く始める方法!導入手順完全ガイド
▶ 【関連記事】 【無料版 vs 有料版】Googleドライブを仕事で使う限界は?「共有ドライブ」導入のメリットと乗り換えタイミング


【今すぐ使える】Google Workspace 10%OFFプロモーションコード

お申し込みの際、決済画面で以下のコードを入力すると初年度の利用料が10%割引になります。

  • Business Starter プラン用:
    • 67MTEGDFHLUVXHV
    • 74LHNFHXH46CGTH
  • Business Standard プラン用:
    • C6367KUCFLKVNCD
    • LAGVTV4QLPM9V3R

▶ Google Workspace 申し込み専用ページはこちら

コメント

タイトルとURLをコピーしました