私の自社のメールはGmail(Google Work Space)を利用しており、且つ各種申請はGoogle Formを利用しています。
Google Formで利用者が申請をしたときにチーム宛にメール通知をする仕組みを作ってみましょう。
メール通知で実現したいこと
- グループアドレス宛にメール送信すること
- グループアドレスから発信すること(チームで仕事をしているので)
シンプルにメール送信
いきなり完成形を目指すとうまくいかないときの切り分けが難しくなるため、少しずつ進めていきます。
まずは、グループアドレス宛にメールを送信します。
Googleのリファレンスによるとメール送信は以下の関数で実行できます。
GmailApp.sendEmail(recipient, subject, body, options)
recipient受信者のアドレス
subject 件名
body メールの本文
options 高度なパラメータを指定する JavaScript オブジェクト
recipient受信者のアドレス
subject 件名
body メールの本文
options 高度なパラメータを指定する JavaScript オブジェクト
optionsは「高度」と書かれているので後で見てみましょう。オプションなのでなくても平気です。
グループアドレス宛にメールを送信をするには以下のコードになります。
MailApp.sendEmail('グループアドレス', '件名', '本文');
もう少しプログラミングぽくしてみます。
function SendMail() {
const STR_Recipient = 'グループアドレス';
const STR_Subject = 'フォーム入力通知';
const STR_Body = '申請フォームが入力されましたので確認してください';
GmailApp.sendEmail(STR_Recipient, STR_Subject, STR_Body);
}
これでグループアドレス宛にメール送信ができました。
次にグループアドレスを発信元にして送信してみましょう。
発信元をグループアドレスにして送信
さて、GmailApp.sendEmailに指定できるパラメータを見る限り発信元はなさそうです。
高度と書かれたoptionsが怪しいですね。よく見てみましょう。
from メールの送信元のアドレス(getAliases() によって返された値のいずれか)
どうやらfromを指定することで発信元を変更できるようです。
ただし、「getAliases() によって返された値のいずれか」と記載されている通り、GASのトリガー作成アカウントのエイリアスに登録されているアドレスからしかできません。
そのため、グループアドレスを予めエイリアスに登録しておく必要があります。
関連記事
Gmailでチームみんなでメールを送りたいけど、どうすればいいの? そんなあなたへ。Gmailでグループアドレスを使って、チームでまとめてメールを送る方法を、図解付きでわかりやすくご紹介します。 なぜグループアドレスを使うの? 例[…]
これを当てはめると次のようなロジックになります。
function SendMail() {
const STR_Recipient = 'グループアドレス';
const STR_Subject = 'フォーム入力通知';
const STR_Body = '申請フォームが入力されましたので確認してください';
const STR_options = {
from: 'グループアドレス'
};
GmailApp.sendEmail(STR_Recipient, STR_Subject, STR_Body, STR_options );
}
これをGASに組み込むことで発信元メールアドレスを変更してメール送信ができます。