Google Apps Script(GAS)を使うと、Gmailを送信することができます。
たとえばユーザーリストがあって、1行ずつメール通知することも可能です。
この記事では、GASを使ってメールを自動配信するツールを作っていきます。
・配信メールの内容はGoogleドキュメントから取得
・ファイルも添付
目次
この記事で紹介するGASプログラムの概要
今回のGmail送信ツールでは、以下の3つのシートを使います。
1. 「メールリスト」は顧客リスト
2. 「送信ドキュメント」はメール本文(Googleドキュメントのリンク)と添付ファイル(Googleドライブリンク)のリスト
3. 「配信停止」は通知しない顧客のリスト
以下で各シートについて紹介していきます。
1. 「メールリスト」
・このシートの一覧に記載されている内容からメールを作成する
– A列|No
– B列|ユーザーID
– C列|名前:氏名でメール本文に差し込む
– D列|メールアドレス
– E列|Doc-No:「送信ドキュメント」シートと紐づいており、変更するとF列~H列が変更
– F列|送信メールの件名:Googleドキュメントのタイトルをそのまま取得
– G列|送信メールの本文URL:Googleドキュメントの内容がそのまま配信内容になる
– H列|添付ファイルURL:メールに添付するファイルのGoogleドライブURL
以下、3つの注意点を記載しておきます。
E列|Doc-No
E列を変更すると、F列~H列はvlookupで「送信ドキュメント」シートのデータと紐づけており、情報を参照している。
またデータの入力規則を使うことで、誤入力防止対策を行っています。
2. 「送信ドキュメント」
・「メールリスト」シートのE列のDoc-Noと紐づける
配信したいメールなどを、このシートに記入しておくことで、「メールリスト」シートから簡単に参照できるようにします。
Googleドキュメントの内容を編集しておく
上記のとおり、G列のGoogleドキュメントから「メール本文」を取得します。
そのため、事前に編集しておきます。
Googleドライブにファイルを保存しておく
H列の添付ファイルは、GoogleドライブURLをもとに取得します。
そのため、事前にファイルをGoogleドライブに保存し、そのURLを取得しておく必要があります。
GoogleドライブのURL取得方法は上記の画像のとおりです。
3. 「配信停止」
・この一覧にあるメールアドレスはメールが通知されなくなる
これらのシートで管理をしていきます。
メールは、定期配信のトリガーを設定しておけば、毎日自動配信させることが可能です。
またメンテナンスも簡単で、Googleドキュメントの内容を変更すればメール内容をすぐに修正可能です。
以下でGASの設定方法を紹介していきます。
GASの使い方・始め方
GASの使い方が分からない人は、以下の動画をご覧いただくことをオススメします。
・GASを使い始めるまでの操作手順
もし動画よりテキストのほうが得意な人は、以下の記事を参考にしていただくと良いです。
GASプログラム解説
本記事のGASプログラムは以下です。
必要に応じて、コピペして活用ください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
//プログラム0|メール送信 function SendMails() { //プログラム1|スプレッドシート指定 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet1 = spreadsheet.getSheetByName('メールリスト'); var MailList = sheet1.getDataRange().getValues(); var sheet2 = spreadsheet.getSheetByName('配信停止'); var RemoveList = sheet2.getDataRange().getValues(); var sheet3 = spreadsheet.getSheetByName('送信ドキュメント'); var DocumentList = sheet3.getDataRange().getValues(); //プログラム2|ログ用の配列設定 var myLog = []; //プログラム3|シート「メールリスト」のメールごとに送信 for(var i = 1; i <= MailList.length; i++) { var mailaddress = MailList[i][3]; //プログラム4|メールアドレスが配信停止に含まれていれば、スキップ var skipsequence = false; for(var j = 0; j < RemoveList.length; j++) { if(mailaddress == RemoveList[j][0]){ skipsequence = true; break; } } if(skipsequence==true){ break; } //プログラム5|行ごとの情報を取得 var userid = MailList[i][1]; //ユーザーID var name = MailList[i][2];//名前 //プログラム6|Googleドキュメントをメール本文として取得 var docurl = MailList[i][6];//あらかじめ作っておいたGoogleドキュメントURLを取得(中身がメール本文) var docid = docurl.split('/')[5];//GoogleドキュメントをIDで取得 var doc = DocumentApp.openById(docid); //Googleドキュメントを取得 var title = doc.getName(); //Googleドキュメントのタイトルをメールの件名にする var body = doc.getBody().getText().replace('{名前}',name); //Googleドキュメント内の{名前}を置換 var fileurl = MailList[i][7];//添付ファイルURL //プログラム7|添付ファイルがあれば取得 if (fileurl!=='なし'){//fileurlがなしでないなら、ファイルURLを取得 var fileurls = fileurl.split('/'); var fileid = fileurls[5]; var file = DriveApp.getFileById(fileid);//添付ファイル取得 //プログラム8A|メール送信(ファイル添付あり) GmailApp.sendEmail(mailaddress,title,body,{attachments:[file]}); }else{ //プログラム8B|メール送信(ファイル添付なし) GmailApp.sendEmail(mailaddress,title,body); } } } |
カンタンな解説は上記のプログラム内のコメントをご覧ください。
詳細の解説は後日アップしていきます。
Google Apps Script(GAS)について詳しく理解したいなら
Google Apps Script(GAS)を活用すると、仕事を効率化できる幅を広げることができます。
たとえば私が実際にGASを活用して効率化してきた作業は以下の動画で解説しています。
動画を見てみると、あなたの仕事にどのようにGASを応用すればいいのかイメージが浮かぶこともあると思います。
ぜひご覧ください。
GASの使い方・始め方を知りたい人向け
この機会に、「GASを使い方を知りたい」と思った人もいるかもしれません。
そのように感じている人は、ぜひ以下の記事をご覧ください。
10分程度でGoogle Apps Scriptを使うためのスタート地点に立てるように解説をしています。
GASで出来ることを知らない人はこちらの記事・動画がオススメ
GASを使って何ができるのかを理解しておくことと、勉強のモチベーションを維持することができます。
なぜならGASの使い所をイメージできるようになるからです。
仕事での活用方法が分かれば、GASをより身近に感じることができるはずです。
このサイトではいくつか事例を使って、GASの実践方法を紹介しています。
興味がある人は以下の記事もご覧ください。
オススメの書籍を紹介
書籍に関しては、以下を読んで購入しました。
GASの全体感をつかむには良いと思います。
その他の書籍については以下の記事で紹介しています。
ただ書籍について、個人的には積極的にはオススメしません。
なぜなら私はGAS習得をする際、書籍よりもウェブサイトを活用してきたからです。
はっきり言って、ウェブサイトだけでも十分に勉強できるほど数多くの情報がアップされています。
書籍はあくまで全体感をつかむためのものであり、すぐにでもウェブサイトでの学習に切り替えたほうが良いのが私の考えです。
Googleスプレッドシートを効率的に操作したいなら
この記事ではGASを活用した仕事の効率化の事例を紹介してきました。
しかしGoogleスプレッドシートの仕事を早くすることを目指すなら、GAS以外の方法もあります。
たとえば、以下の方法です。
上記の内容については、以下の動画で紹介しています。
ぜひGoogleスプレッドシートを上手に扱えるようになりたい人はご覧いただきたいです。