Google Form 에서 Script 를 이용한 응답 메일 보내기

구글 독스의 양식을 이용하다보면 설문 조사 후 응답에 대한 감사 메일이나 이벤트 참가자 모집 양식 등 양식에 응답한 사람들에게 이메일로 응답을 보내야 할 경우가 있다. 이러한 경우 구글 양식을 만들고 스크립트를 작성하여 이러한 기능을 수행 할 수 있다.


구글 양식 작성 및 스크립트 생성

먼저 구글 독스에서 양식을 작성한 다음 [도구]-[스크립트 관리자] 를 클릭한다.

스크린샷 2013-11-20 오후 10.39.16


스크립트 작성

스크립트 관리자에서 스크립트를 추가하면 스크립트를 편집 할 수 있는 화면이 나오는데 아래와 같이 스크립트를 작성하여 준다.

function onFormSubmit(e) {
 var form = FormApp.getActiveForm();

 var name = e.response.getItemResponses()[0].getResponse();
 var email = e.response.getItemResponses()[2].getResponse();
 var edit_url = e.response.getEditResponseUrl();

 var email_title = "응답 확인 이메일 입니다.";
 var email_contents = "응답해 주셔서 감사합니다.";
 MailApp.sendEmail(email, email_title, email_contents);
}

onFormSubmit(e) 는 구글 스크립트의 이벤트 중 하나이다. 이벤트와 관련된 자료는 https://developers.google.com/apps-script/understanding_events 에서 볼 수 있다.

onFormSubmit 함수의 e 파라미터는 FormResponse 의 형태로 넘어온다. FormResponse 에는 다양한 기능들이 있는데 이와 관련된 자세헌 정보는 API 문서를 참조하면 쉽게 이해 할 수 있다. 응답 확인 메일 발송을 위해서 필요한 정보에 대해 살펴보자.

e.response.getItemResponses()[index].getResponse();

이 부분이 event 에서 각 응답에 사용자가 응답한 내용을 가져오는 부분이다. 여기서 index는 생성된 양식의 몇 번째 항목인지를 의미한다. 예를 들면, 첫번째 항목이 이름, 두번째 항목이 이메일, 이름의 index는 0이고 이메일의 index는 1이된다. 이런 식으로 원하는 항목의 응답을 스크립트에서 가져와 이용 할 수 있다.

MailApp.sendEmail(email, email_title, email_contents);

필요한 항목을 가져온 뒤, 이메일을 구성하여 MailApp 클래스를 이용하여 이메일을 보내는 코드를 작성하여준다. MailApp 의 sendEmail 함수의 각 파라미터들은 위와 같다.


트리거 추가

스크린샷 2013-11-20 오후 10.54.42

스크립트 작성을 완료하였다면, 스크립트 윈도우에서 [리소스]-[현재 프로젝트의 트리거] 메뉴를 선택하여 양식과 연결시켜준다. 트리거를 간단하게 설명하자면 구글 독스의 기능과 스크립트를 연결시켜주는 것이다. 양식의 경우 생성시, 편집시, 제출시에 대해 스크립트의 함수를 연결시킬 수 있다. 연결된 함수는 트리거의 각 시점에 따라 함수가 실행된다. 트리거에 대한 자세한 설명은 https://developers.google.com/apps-script/understanding_triggers 에 나와있다.

 

댓글 남기기