구글폼 / 구글 스프레드시트에서 구글 이메일을 ‘자동’으로 보낼 수 있는 것 알고 계셨나요? 클라이언트에게 일별, 주차별 보고서를 보내줘야할 때 예약 걸어놓으면 참 편하지 않을까? 하는 생각에서 탄생한 구글 스프레드시트에서 자동으로 이메일 보내기
더도말고 덜도 말고 딱 1분만 집중해보세요.
1. 구글 스프레드시트 Add-on 활용하기.
쉬운방법 부터 해야 포기하지 않으실 것을 알기 때문에 일단 쉽게 접근을 시작해봅시다. 특히 이전에 포스팅했던 네이버 블로그방문자 크롤링 처럼 매일같이 갱신되는 데이터는 이메일을 적극활용해 주는게 좋습니다.
구글 스프레드시트에서는 ‘부가기능’이라는 여러 개발자분들이 만들어놓은 리소스를 적극적으로 활용하실 수 있는데요.
일단 첫 번째는 이런 무료 리소스를 빠르게 설치해서 필요한 데이터만 쏙쏙 골라 보내도록 해보겠습니다. 먼저 테스트 스프레드시트가 필요하겠죠?
샘플 스프레드시트 링크
어우 딱봐도 양이 많습니다. 자 한번 데일리로 보내보도록 할텐데요. 최근들어 자동 이메일 애드온들은 현재 웬만한 서비스들이 ‘유료’화를 시도하고 있기 때문에 일단 맛보기로 따라와주세요.
확장프로그램 > 부가기능 > 부가기능 설치하기
이제 부가기능 마켓 플레이스 검색창에 “schedule” 이라고 검색해줍니다.
검색결과 다운로드 수가 가장 많은 yamm 메일이 제일 좋습니다. 하루에 100개까지 무조건 무료이기 때문인데요. 다만 YAMM 메일은 ‘템플릿’ 설정을 해야해서 일단은 2번째 Schedule & Send Email을 설치해주세요.
사용자 동의 설정도 과감하게 ‘동의’를 눌러서 넘겨주시면 설치가 완료됩니다. 다음은 다시 스프레드시트에서 ‘부가기능’ 하단에 설치된 애드온을 눌러줍니다.
Manage Schedules 를 눌러서 실행해줍니다.
보내실 이메일을 이제 설정하시면 되는데 본문에 셀 값을 넣고 싶은 경우엔 {%’시트이름’!셀주소%} 이렇게 사용합니다.
예를 들어 F3:F10까지의 데이터를 넣고 싶다고 가정하면 제 시트 기준으로는 {%’피드 크롤링1′!F3:F10%} 요렇게 이메일 본문에 넣으면 됩니다.
대부분 스프레드시트를 처음 만들면 ‘시트1’ 이런식으로 배정되니 1행 1열 A1에 데이터를 넣어보시고 {%’시트1′!A1%} 부터 사용해보세요.
이메일 세팅 이후엔 시간 스케줄 셋업만 잘 해주시면 정해진 시간대에 발송이 됩니다. 여기서 잠깐
일단 구글 스프레드시트에서 이메일 자동 발송은 ‘특정 시간’ 발송을 연속할 수 없습니다.
이 말인 즉슨, 특정 ‘시간대’를 지정하는 것은 가능하지만 ‘매일 8시 정각에 메일 발송’은 불가능합니다. 이 이유는 바로 앱스크립트에 대해 설명하면서 말씀드리겠습니다.
구글의 확장성을 500% 증폭시켜주는 Apps Script
저는 앱스크립트라고 편하게 부르는데 실제 풀네임은 Apps script 입니다. 뭐 어찌됬든 편하게 쓰면 장땡이지 않겠습니까
여기서 부터는 아마 코딩이라던지… 자바스크립트 등이 나오게 되는데 걱정하지 마세요.
제가 적어드리는 고대로~ 복붙만 하시면 이메일 보낼 수 있습니다.
따라만 하세요!
- 확장프로그램 > Apps Script 메뉴 클릭
먼저 앱스크립트 설정 화면으로 넘어와주셔야 합니다. 새로운 스프레드시트를 만들어서 하시는게 좋겠죠?
실행하시면 이런 화면이 여러분을 반기게 됩니다. 낯섭니다. 도대체 이게 뭔가 싶으실텐데 당황하지 않고 우리는 function 부분을 다 지우고 아래 스크립트를 붙여넣기 해줍니다.
function sendGmail() {
//현재 맨 첫번째 위치한 활성 시트 가져오기
var s=SpreadsheetApp.getActiveSheet();
// 보낼 내용 셀 영역을 적어줍니다. ex. A2:B3
var sendData = s.getRange('A2:B3').getValues();
console.log(sendData);
//''안에 본인의 이메일 주소를 적어주세요.
var emailAdress = 'example@example.com';
// 이메일을 제목을 설정해주세요.
var subject = '이메일 자동화 테스트입니다.'
var message = sendData
//이메일을 보내는 영역
MailApp.sendEmail(emailAdress,subject,message);
}
모두 교체 하셨다면 이제 저장버튼을 눌러서 저장 후 sendGamil 함수를 실행 해줍니다.
이제 승인이 필요하다는 내용이 나오는데 ‘권한 검토’를 눌러줍니다.
현재 권한이 있는 구글 계정을 선택해주신 뒤, 구글에서 확인하지 않은 앱이라는 경고문구는 가볍게 무시하고
(앱스크립트는 구글이 만들었지만 코딩으로 인한 일에 책임이 없다~ 이런 승인절차입니다)
‘고급’을 눌러서 프로젝트로 이동을 눌러줍니다. ‘안전한 환경으로 돌아가기’ 누르면 진행이 되질 않습니다.
이제 프로젝트를 최종 허용해주신 뒤 실행을 다시 눌러보시면 하단 실행 로그에 이런저런 내용이 뜨실 겁니다.
이런식으로 자신에게 보내는 이메일은 즉각 전송이 되어야 성공입니다.
코드 내에서는 sendData 라고 되어 있는 5번째 줄에서 getRange() 안에 있는 셀 영역을 알맞게 수정해주셔야 합니다.
그 외에도 이메일 주소는 필히 변경해주셔야 하구요. (8번째 줄)
이제 딱 하나 남았습니다 바로 매일 같이 언제 보낼지를 설정하시는 거죠.
이제 왼쪽 메뉴에 보시면 ‘트리거’로 들어가 줍니다.
우측 하단에 ‘트리거 추가‘ 버튼을 눌러주시면,
3번째 이벤트 소스 선택을 ‘스프레드시트에서‘ -> 시간기반으로 변경해줍니다.
이제 트리거 기반 시간유형 선택
이라는 메뉴가 나오는데요 시간 단위 타이머를 -> 일 단위 타이머로 변경해줍시다.
이제 이메일이 왔으면 하는 시간대를 설정해주신뒤 ‘저장’ 해주시면 끝.
데일리로 이메일을 자동 발송 하실 수 있게 되었습니다.
구글에서 제공해주는 데모로 해보기 하단 링크 참조.
구글에서 사본과 스크립트 제공해주는 것으로도 시도해보실 수 있습니다.
안녕하세요 혹 메일을 보낼때 시트 그대로 보낼 수 는 없나요?
안된다면 내용의 줄 바꿈은 어떻게 하나요?
시트내용을 보내려는 경우 PDF로 전환처리해서 보내야 합니다!