오늘은 gsheet를 활용하여 다수의 사람에게 개인화된 메일을 한 번에 보내는 방법에 대해 알아보고자 한다.
배경
앞서 설명한 바와 같이 gsheet를 활용해서
목적: 기존 gsheet 기반 메일 머지(Mail Merge) 개선
기존 gsheet 기반 메일 머지 예시
https://velog.io/@twinklesu914/Gmail%EC%97%90%EC%84%9C-%EA%B0%9C%EB%B3%84%ED%99%94%EB%90%9C-%EB%A9%94%EC%9D%BC-%EB%B0%9C%EC%86%A1%ED%95%98%EA%B8%B0
기존 gsheet 기반 메일 머지의 단점
위 블로그에서 다운 받을 수 있는 기존 gsheet 메일 머지의 단점은 아래와 같다.
1. cc, bcc 불가
2. 메일머지 설정의 귀찮음(google docs로)
3. 보낼 메일 미리보기 불가(템플릿에 잘 적용되었는지)
4. 파일 첨부(google url로) 불가
5. 로그 남기기 불가
위 내용을 개선하고자 새로 gsheet 메일 머지를 만들었으며, 아래 사항들을 고려하였다.
1. 작성 폼 미리보기 및 전송하기(main) - ui 구성(버튼 설정)
2. 다른 사용자가 쉽게 custom할 수 있어야 함.
3. sheet 내 특정 행만 선택하여 메일 발송 가능
동작 방식
제작 시 고려한 동작 방식 및 과정은 아래와 같다.
세부적인 사항들은 아래와 같다.
1. 메일 포맷 가져오기(google doc의 html 정보 읽어오기)
위 예시에서 나온 바와 같이 '{{slot}}' 형식으로 2개의 중괄호로 둘러 쌓인 slot들(team, opponent, score, result, all_url)은 sheet에 입력된 값으로 치환되어 최종 메일로 전송된다.
2. gmail 전송 함수 활용하기(cc, bcc 설정, 수신자 설정, 내용 넣기, apps script)
gsheet의 '확장 프로그램 > apps script' 에서 확인 가능하다.
apps script를 활용하여 google 플랫폼 내 다양한 문서들(google docs, sheet, gmail 등) 을 연결시키는 작업을 javascript와 유사한 문법으로 작성할 수 있다.
3. 수신자별 custom 메일 작성하기(regex로 변환, formatting)
gsheet를 사용해 각 전송 대상들에게 custom 메일을 작성할 수 있다.
4. 작성 폼 미리보기 및 전송하기(main) - ui 구성(버튼 설정)
5. log 남기기
완성 파일 링크
'파일 > 사본 만들기' 로 개인 드라이브에 사본 생성 하셔서 사용하시면 되겠습니다.
1. 원본 시트
https://docs.google.com/spreadsheets/d/1bpmZ6gZX025J46UBPGwSM1bnSl0GAHoIZ1lQnc9wN10/edit?usp=sharing
2. log 시트
https://docs.google.com/spreadsheets/d/14x0NtK5kFX_d6h0SKqcFVs94Ok0jrk5X7EgMIijgztk/edit#gid=0
template
https://docs.google.com/document/d/1lxGT5uknF7JTyv2t1_oUyt9AddLXvjWZsLnDPZ03244/edit
사용법
1. 시트 다운 받기
'파일 > 사본 만들기' 로 개인 드라이브에 사본 생성 하셔서 사용하시면 되겠습니다.
2. 시트 설명
전체 시트에 대한 설명은 readme 시트에 적어 놓았습니다.
2-1. 공용 정보(모든 메일에 공통적으로 적용되는 정보)
맨 위쪽의 2행은 cc, bcc, 템플릿 정보(템플릿으로 활용할 google doc url), logging할 gsheet url이 들어가는 칸
2-2. 수신자별 정보(수신자별 메일에 개별적으로 적용되는 정보)
나머지 아래 칸은 보낼 사람(recipient), 제목, 개별 입력될 내용을 입력하는 칸
3. 메일 템플릿 세팅
공용 정보와, 수신자별 정보를 기록한 후,
메일을 보낼 행들을 check 열에서 체크합니다.
우측의 'view sample' 버튼을 클릭하여 slot이 잘 채워졌는지 확인 후 send 버튼을 클릭하여 메일을 발송합니다.
발송 후 check 표시 해제, sent 열에 보낸 시각이 입력되었는지 확인합니다.
5. log 확인
공용정보의 'loggingSheetUrl'에 입력한 log sheet에 log가 잘 입력되었는지 확인합니다.
궁금하신 사항이나 개선이 필요한 사항, 오류 등은 댓글을 통해 말씀해주세요 :)
'컴퓨터' 카테고리의 다른 글
[gsheet] 구글 스프레드 시트에서 GPT를 활용하는 방법 (0) | 2024.02.11 |
---|---|
[ChatGPT]구글 BARD 사용기, chatGPT vs BARD (1) | 2023.05.02 |
[웹] 티스토리 문단 스타일 변경 (2) | 2023.05.02 |
[웹] BTS 가사 퀴즈 사이트 만들기 (0) | 2023.04.27 |
[웹] 검색어 추천 기능(html, css, javascript) (0) | 2023.04.24 |
댓글