1. Google Apps Scriptでのメール送信
-
GASの関数として,
MailApp.sendEmail()
等が用意されている。これはnewでオブジェクト(インスタンス)を作成する必要がない,スタティック(いつでも実行可能)なクラス.メソッド
である。 -
詳しくは,GASマニュアルを参照。
-
引数を渡してメールを送る次のメソッドでも良いが,一般には
sendEmail(message)
を使用するのが楽。
sendEmail(recipient, subject, body)
sendEmail(recipient, subject, body, options)
sendEmail(to, replyTo, subject, body) -
sendEmail(message)
は,一番フレキシブルで使いやすく,たくさんのオプションが利用できる。message
は{}
でくくることで,Advanced parametersが利用できる。 -
Advanced parametersの使用例は,下のサンプルプログラムを参照。to, cc, bcc, name subject, body等の便利なパラメータが利用できる。
-
サンプルプログラムでは,添付ファイルを送信する準備のため,
new Array()
で添付ファイルを格納する配列を用意しているが,使っていない。 -
ループを組んで一度にメール送信することは,スパムメールになるのでやってはいけない。
-
GASで1日に送信できるメール通数に限界があり,50通程度で出せなくなる。
-
toAdrにメールアドレス,その他も適当に代入すれば,メール送信テストができる。
-
メール本文に,getDateAndTime()関数により,送信日時を入れている。
-
実行時には,承認が必要になるので,確認して,許可する。
logID= "**********";//手動でDocumentを新規作成しIDを調べておく
function main(){
var log = new Doc(logID);
log.print("送信先等の設定\n");
var toAdr = "xxxxx@gmail.com";//送り先アドレス
var ccAdr = "";//Ccアドレス
var bccAdr = "";//bccアドレス
var subject = "GASからメール送信";//メールの題目
var name = "";//送り主の名前
var files = new Array();//添付ファイル,どんな型でも,いくつでも格納できる配列,
//場所は確保してないのでpushメソッドで格納する
var body =
"メール送信テスト\n" +
"送信日時:" + getDateAndTime(0) + "\n"
"メール本文" + "\n";
MailApp.sendEmail({to:toAdr, cc:ccAdr, bcc:bccAdr, subject:subject, name:name, body:body, attachments:files});
log.print("メール送信完了\n");
}
function getDateAndTime(data){// 引数がゼロなら現在日時そうでなければ指定日時をyyyymmdd_hhmmssで返す
if(data==0) var now = new Date();
else var now = new Date(data);
var year = now.getYear();
var month = now.getMonth() + 1;
var day = now.getDate();
var hour = now.getHours();
var min = now.getMinutes();
var sec = now.getSeconds();
return (""+year).slice(0,4) + ("0"+month).slice(-2) + ("0"+day).slice(-2) +'_'+
("0"+hour).slice(-2) + ("0"+min).slice(-2) + ("0"+sec).slice(-2);
}
//////////Docクラスの定義開始(コンストラクタとメンバ関数で構成)
//Docクラスのコンストラクタの記述
Doc = function(id){
this.ID = id;
this.doc = DocumentApp.openById(this.ID);
this.body = this.doc.getBody();
this.docText = this.body.editAsText();
}
//Docクラスのメンバ関数の定義開始
//メソッドprintの定義,テキスト追加
Doc.prototype.print = function(str){
this.docText.appendText(str);
}
//メソッドreplaceの定義,文字列置き換え
Doc.prototype.replace = function(src,dst){
this.body.replaceText(src,dst);
}
//メソッドclearの定義,全消去
Doc.prototype.clear = function(){
this.body.clear();
}
//メソッドgetIDの定義,ファイルIDを返す
Doc.prototype.getID = function(){
return this.ID;
}
//////////Docクラスの定義終了
次は,フォームを使った時間指定メール送信システムのインターフェース作りです。
<前へ> <次へ>