Skip to content

Instantly share code, notes, and snippets.

@msng
Created April 20, 2012 09:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save msng/2427354 to your computer and use it in GitHub Desktop.
Save msng/2427354 to your computer and use it in GitHub Desktop.
Google ドキュメントのフォームから投稿があったら確認メールを自動返信する(日本語版)
/**
* Google ドキュメントのフォームから投稿があったら確認メールを自動返信する(日本語版)
* English version will be available later.
*
* @author Masunaga Ray ( http://www.msng.info/ )
* @instruction http://www.msng.info/archives/2012/04/google-docs-auto-reply.php
*/
function sendConfirmation() {
//フォームでメールアドレスが入力される列の名前
var emailColName = "メールアドレス";
try {
var ss = SpreadsheetApp.getActiveSpreadsheet();
//確認メールのコピーを送る管理者のメールアドレス
var adminEmail = ss.getOwner().getEmail();
var sheets = ss.getSheets();
var template = sheets[1].getDataRange();
//必要に応じてテンプレートの配置セルまたは内容を変更してください
var subject = template.getCell(1, 1).getValue();
var bodyPre = template.getCell(2, 1).getValue();
var bodyPost = template.getCell(3, 1).getValue();
var errorSubject = template.getCell(4, 1).getValue();
var dataSheet = sheets[0];
var range = dataSheet.getDataRange();
var lastRow = range.getLastRow();
var lastCol = range.getLastColumn();
var header = dataSheet.getRange(1, 1, 1, lastCol).getValues();
var emailCol = header[0].indexOf(emailColName) + 1;
if (emailCol == 0) {
throw 'メールアドレス用のフィールド名「' + emailColName + '」が見つかりませんでした';
}
for (var row = lastRow; row > 1; row--) {
var sentFlag = range.getCell(row, lastCol);
if (sentFlag.getValue() == '') {
var email = range.getCell(row, emailCol).getValue();
var body = '';
for (var col = 2; col < lastCol; col++) {
body += ' - ' + range.getCell(1, col).getValue() + ': ' + range.getCell(row, col).getValue() + "\n";
}
body = bodyPre + body + bodyPost;
MailApp.sendEmail(email, subject, body, {bcc:adminEmail});
sentFlag.setValue('v');
} else {
break;
}
}
} catch(e) {
MailApp.sendEmail(adminEmail, errorSubject, e);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment