こんにちは!
Yuki (@yukibnb) です。
今回はGoogle Apps Script (GAS) を使って送信元 (差出人) メールアドレスを変更してメール送信する方法を紹介します。
「メールエイリアス」や「グループメールアドレス」からメール送信する、と言った方がわかりやすいかもしれません。
では見ていきましょう!
はじめに
実現したいこと
今回実現したいことはGASでメール送信する際に送信元を自分の個人メールアドレスではなく、info@mycompany.com や sales@mycompany.com のような部署や会社の代表メールアドレスからメール送信することです。
「Googleフォーム回答者へのメール通知」、「定期的な社内メール通知」、「何らかの自動メール通知」などにGASを利用されている方は多いと思います。
それらのメールの送信元は個人メールアドレスではなく、 info@... などのメールアドレスから送信できた方が好ましいケースが多々あります。
前提
今回紹介する方法は以下の記事で紹介したメール送信方法の応用版です。
「個人メールアドレスからのメール送信方法がそもそもわからない」という方は上記記事も合わせてご覧ください。
コピペでOK!送信元メールアドレスを変更してメール送信する方法
オプションで≪from≫を使用する
sendEmail
メソッドの括弧内のオプションでfrom
を使用して希望のメールアドレスを記述すると、送信元メールアドレスを変更することができます。
let recipient = "yamada@sample.com"; let subject = "【ご連絡】〇〇の件"; let body = "◆◆様\nお世話になっております。"; let options = {from: "info@mycompany.com"}; //送信元メールアドレス GmailApp.sendEmail(recipient, subject, body, options);
sendEmail
メソッドの括弧内に{from: "info@mycompany.com"}
を直接記述しても構いませんが、上記のように変数options
を作成し、その変数をsendEmail
メソッドの括弧内に入力するのが一般的です。
これだけで送信元メールアドレスを変更することができます。とてもシンプルですね。
次にいくつかポイントと活用例を見てみましょう。
ポイントと活用例
送信元メールアドレスに指定できるメールアドレスとは
from
で送信元メールアドレスを変更できることはわかりましたが、もちろんなんでも好きなメールアドレスに変更できるわけではありません。
送信元メールアドレスに指定できるメールアドレスは、GAS実行者が所有しているメールエイリアスのみです。
例えば田中さんが個人メールアドレス (tanaka@mycompany.com) ではなく、会社の代表アドレス (info@mycompany.com) からメール送信したい場合、田中さんは事前にinfo@mycompanyのメールエイリアスを取得・設定する必要があります。
事前にメールエイリアスを取得・設定していない場合、from
でメールアドレスを指定してもエラーとなりメールを送信できませんのでご注意ください。
メールエイリアスの取得・設定方法は以下のGoogle公式ヘルプをご覧ください。
別のアドレスやエイリアスからメールを送信する
※Google Workspace管理者の方は以下公式ヘルプもご覧ください。
ユーザーに追加の「メール エイリアス」アドレス(sales@)を付与する
適切なメールエイリアスを持っているGAS実行者のみメール送信できるようにする
let recipient = "yamada@sample.com"; let subject = "【ご連絡】〇〇の件"; let body = "◆◆様\nお世話になっております。"; let options = {from: "info@mycompany.com"}; //送信元メールアドレス GmailApp.sendEmail(recipient, subject, body, options);
こちらのコードはGAS実行者が確実にinfo@mycompany.comのメールエイリアスを所有・設定している場合有効です。
もしそうでない場合、GASのエラーを防ぐため以下のようにスクリプトを調整すると便利です。
let recipient = "yamada@sample.com"; let subject = "【ご連絡】〇〇の件"; let body = "◆◆様\nお世話になっております。"; let fromAddress = "info@mycompany.com" //★★送信元メールアドレス let options = {from: fromAddress}; //メールエイリアスを取得し、変数aliasesに格納する let aliases = GmailApp.getAliases(); //変数fromAddressに格納されているメールアドレス (今回はinfo@mycompany.com) //のメールエイリアスを所有・設定していない場合、スクリプトを終了する if(aliases.indexOf(fromAddress) === -1) { return; } GmailApp.sendEmail(recipient, subject, body, options);
このスクリプトは以下の手順で実行されます。
変数optionsを作成し、送信元メールアドレスを指定する
let fromAddress = "info@mycompany.com" //★★送信元メールアドレス let options = {from: fromAddress};
変数fromAddress
に送信元メールアドレスを格納します。
そして変数options
に変数fromAddress
を格納します。
let options = {from: "info@mycompany.com"};
を二行に分割しました。
こうすることで変数fromAddress
の値を変更するだけで、変数options
内のメールアドレスも連動して変更されます。
メールエイリアスを取得する
//メールエイリアスを取得し、変数aliasesに格納する let aliases = GmailApp.getAliases();
getAliases
メソッドを使用し、GAS実行者が所有しているメールエイリアスを取得します。
変数aliases
のデータ型は一次元配列となり、中身は以下のようになります。
["info@mycompany.com", "sales@mycompany.com", "support@mycompany.com"]
getAliases
メソッドの詳しい解説は以下記事をご覧ください。
【初心者向け!GAS基本操作】GASでGmailのメールエイリアスを取得する方法
変数fromAddressのメールアドレスを所有していない場合、スクリプトを終了する
//変数fromAddressに格納されているメールアドレス (今回はinfo@mycompany.com) //のメールエイリアスを所有・設定していない場合、スクリプトを終了する if(aliases.indexOf(fromAddress) === -1) { return; }
一次元配列aliases
に対してindexOf
メソッドを使用し、一次元配列aliases
の中に変数fromAddress
のメールアドレス、つまりinfo@mycompanyが存在するか確認します。
indexOf
メソッドは、検索したいモノ (info@mycompany) が一次元配列に存在しない場合-1
を返します。
if文とindexOf
メソッドを組み合わせて、もし一次元配列aliases
の中にinfo@mycompany.comが存在しない場合、return
によってこの時点でスクリプトが終了します。
なおif文の{ }
内はreturn
だけでなくメッセージボックスを表示させたり、管理者にエラー報告メールを送信させたり、他のなんらかの処理も組み合わせると便利かと思います。
indexOf
メソッドの詳しい解説は以下記事をご覧ください。
【初心者向け!GAS基本操作】GASで一次元配列内の要素を検索する方法
メールを送信する
GmailApp.sendEmail(recipient, subject, body, options);
あとはいつも通りsendEmail
メソッドを使ってメールを送信するだけです。
info@mycompany.comのメールエイリアスを取得・設定していない場合、if文内のreturn
ですでにスクリプトが終了しています。
if文より後にsendEmail
メソッドを記述しましたので、info@mycompany.comのメールエイリアスを取得・設定しているGAS実行者のみsendEmail
メソッドを実行してメール送信できます。
これで適切なメールエイリアスを持っているGAS実行者のみメール送信できるようになりました。
まとめ
今回はGoogle Apps Script (GAS) を使って送信元 (差出人) メールアドレスを変更してメール送信する方法を紹介しました。
info@mycompany.com や sales@mycompany.com のような部署や会社の代表メールアドレスからメール送信できるようになると、利便性がぐっと上がります。
次回記事もご期待ください!