初めてのGAS(Google Apps Script)|スプレッドシートの内容を本文に差し込んで、添付ファイルも付けて、Gmail一斉送信してみた。
スプレッドシートにあるメールリストに一斉送信したい。BCCでは送りたくない。本文にはそれぞれの所属と名前を入れたい。添付ファイルも付けたい。と思ったことはありませんか?
それ、本日の私です。
GAS(Google App Script)でできるのはなんとなくわかるんですが、やり方知らないしなあ。でも、とりあえずググりながら見よう見まねでやってみました。
なんと、結構簡単にできました。全員に送れた時は快感です。ちょっと苦労しましたけど、やり方公開しちゃいます!
まずはスプレッドシートを用意
ここでは架空のリストを使っています。1列目に名前、2列目に所属、3列目にメールアドレスを入力します。↓
スプレッドシートのメニューから「ツール」をクリックします。↓
次はスクリプトエディタ
新しいタブでスクリプトエディタが起動します。↓
function sendMail(){
const sheet = SpreadsheetApp.getActiveSheet();
const lastRow = sheet.getLastRow();
const DOC_URL = 'ここにドキュメントのURLをペーストします';
const doc = DocumentApp.openByUrl(DOC_URL);
const docText = doc.getBody().getText();
const subject = 'こちらにタイトルを入力します。';
for(let i = 2; i <= lastRow; i++){
const namae = sheet.getRange(i, 1).getValue();
const syozoku = sheet.getRange(i, 2).getValue();
const address = sheet.getRange(i, 3).getValue();
const body = docText
.replace('{所属}',syozoku)
.replace('{名前}',namae);
var tempu = DriveApp.getFilesByName('添付ファイルの名前').next();
GmailApp.sendEmail(address, subject, body, {
name: '送信者の表示名',bcc: 'BCCで送るメールアドレス',
attachments: [tempu]});
}
}
上のスクリプトを、スクリプトエディタにコピペしてください。こんな感じ↓
スクリプトエディタは一旦置いておいてドキュメント
本文はドキュメントで作成します。スプレッドシートの所属と名前を差し込みたいところに{所属}{名前}と書きます。「{」は半角入力です。↓
このドキュメントのURLをコピーして、スクリプトエディタの6行目のシングルクオテーションマークの内側にペーストします。
次に添付ファイルの指定
メールに添付したいファイルはGoogleドライブ内に保存しておいてください。
そして、ファイル名をスクリプトエディタの23行目のシングルクオテーションマークの内側にペーストします。
スクリプトエディタ仕上げ
エディタの10行目にはメールの件名(Subject)を記入します。26行目には送信者の表示名、BCCで送るメールアドレスを記入します。BCCが必要なければ'BCCで送るメールアドレス', を消しても構いません。CCにしたければbccをccに書き換えるだけでOKです。↓
送信
さて、送りますか。
スクリプトエディタの保存マークを押して一旦保存しましょう。そして、再生ボタンを押します。↓
データにアクセスするためのパーミッションが出てきますが、許可してください。↓
Gmail、ドキュメント、ドライブにアクセスを許可します。↓
これで、自動送信されます。
送信メールをみて、実際に送られているか確認しましょう。↓
はい、できました。
GASで効率よく仕事しましょう!
スキ&フォローお願いします。
Adios.
↓Google App Scriptリファレンス・サンプルコード付き↓
個別に添付ファイルを送る場合はこちらも参考にしてください。
また、今回の記事の改訂版も書きました。こちらの方が簡単にメールを送れますので、ぜひ参考にしてみてください。