【GAS】Google Apps Script からメールを送信する
ちょびちょびお仕事させていただいているパートナーさんから「取引先に定型文を入れたメールを送りたい」という要望があがり、「ライトに作るなら GAS からメールを送ろうかな」と思い立ち、その際に GAS からメールってどうやって送るんだっけというものを調べたので、よく使いそうなものをまとめました。
一番簡単な送り方
宛先のメールアドレス、件名、本文を設定して送ります。送信元のメールアドレスは Permission を許可した Google アカウントの Gmail アドレスが設定されます。
function sendEmail() {
let to = "sample@gmail.com";
let subject = "テスト件名";
let body = "本文です";
GmailApp.sendEmail(to, subject, body);
}
送信元を変更する
以下のコードで optional に送信元を設定することができますが、デフォルトだとアカウントのメールアドレスしか使うことができません。
function sendEmail() {
let to = "sample@gmail.com";
let subject = "テスト件名";
let body = "送信元を設定してみました";
let options = {from: "all@gmail.com"};
GmailApp.sendEmail(to, subject, body, options);
}
これは Gmail の Settings => All settings => Accounts and import タブへ移動し、Add another email address から送信元に設定したいアカウントを入力して設定すればOK。
ただし、本当に設定できるかどうかを設定したアカウントに対して Verification code を送ってくるので、その Verification code を入力しないと追加することができないです。
CC または BCC を設定する
options に CC, BCC の項目を追加すると送信できます。
function sendEmail() {
let to = "sample@gmail.com";
let subject = "テスト件名";
let body = "CC, BCCを設定してみました";
let options = {from: "all@gmail.com"
, cc: "a1@gmail.com"
, bcc: "b1@gmail.com"};
GmailApp.sendEmail(to, subject, body, options);
}
複数アドレスを送信先として設定する
to, cc, bcc いずれも配列にすれば解決します。
function sendEmail() {
let to = ["sample1@gmail.com","sample2@gmail.com","sample3@gmail.com"];
let subject = "テスト件名";
let body = "宛先を複数設定してみました";
let options = {from: "all@gmail.com"
, cc: ["a1@gmail.com","a2@gmail.com","a3@gmail.com"]
, bcc: ["b1@gmail.com","b2@gmail.com","b3@gmail.com"]};
GmailApp.sendEmail(to, subject, body, options);
}
ファイルを添付する
attachments オプションにファイルを指定すると添付可能です。配列形式にして添付すれば複数ファイルも送付可能。
function sendEmail() {
let to = ["sample1@gmail.com","sample2@gmail.com","sample3@gmail.com"];
let subject = "テスト件名";
let body = "ファイルを添付してみました";
let attachedImg = DriveApp.getFileById("1u5u7yi9TCVLRyS_gVaVT0vUSSKgMfgty").getAs(MimeType.PNG);
let options = {from: "all@gmail.com"
, cc: ["a1@gmail.com","a2@gmail.com","a3@gmail.com"]
, bcc: ["b1@gmail.com","b2@gmail.com","b3@gmail.com"]
, attachments: [attachedImg]};
GmailApp.sendEmail(to, subject, body, options);
}
ファイルを取得するには GAS を実行する Google アカウントの Google Drive にファイルを保存しておく必要があります。 上記のコードで指定しているファイルのIDは共有リンクから取得しましょう。なお、共有リンクは以下の形式で発行されますが、スクリプトコード内で指定しているIDは abc123 の部分です。
また、ファイルを取得する際はファイルタイプを指定する必要があります。
代表的なものを列挙しておきます。