Google Apps Script는 Google에서 만든 스크립팅 플랫폼으로, Gmail, Google Docs, Google Slides와 같은 앱에 내장된 스크립팅 라이브러리를 제공합니다.
Google 스프레드시트에서 Google Apps Script를 사용하면 반복적인 작업 자동화부터 사용자 지정 함수 생성까지 다양한 작업을 수행할 수 있습니다. 스크립트를 사용하면 Google 스프레드시트에서 셀 값을 기반으로 이메일을 보낼 수 있습니다. 작동 방식은 다음과 같습니다.
특정 주소로 이메일을 보내는 Google 시트 스크립트를 만드는 방법
Google Apps Script에 포함된 유용한 서비스 중 하나는 MailApp 서비스입니다.
여기에는 Google 스프레드시트 내에서 직접 이메일을 보낼 수 있는 MailApp.sendEmail 함수가 포함되어 있습니다. 받는 사람, 제목, 본문만 입력하면 나머지는 MailApp.sendEmail이 처리합니다. sendEmail 함수는 Gmail 계정에서 사용자를 대신하여 이메일을 발송합니다.
스프레드시트의 셀에서 추출한 이메일 주소를 사용하여 이메일을 보내려면 메뉴에서 확장 프로그램 > Apps Script 순서로 선택하세요.
새로운 탭이 열리면 다음 코드를 복사하거나 입력하세요.
function sendEmailFromSheet() {
// Get the currently active spreadsheet
varspreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// Get the active sheet within the spreadsheet
varsheet = spreadsheet.getActiveSheet();
// Get the email address from cell B1
varrecipientEmail = sheet.getRange("B1").getValue();
// Define the subject for the email
varemailSubject = "A Message From Your Google Sheet!";
// Define the body of the email
varemailBody = "This is an email sent from Google Sheets. Clever, right?";
// Send the email using MailApp service
MailApp.sendEmail(recipientEmail, emailSubject, emailBody);
}
recipientEmail 변수의 셀 참조를 이메일 주소가 저장된 셀과 일치하도록 변경합니다.
emailSubject 변수의 제목줄을 원하는 제목으로 바꾸세요.
emailBody 변수에서 이메일 본문을 원하는 내용으로 변경하세요.
스크립트를 저장하려면 디스크 아이콘을 클릭하세요.
스크립트를 테스트하려면 디스크 아이콘 옆의 실행 아이콘을 클릭하세요.
스크립트를 처음 실행할 때 스크립트가 Gmail 계정을 사용할 수 있도록 권한을 부여해야 합니다.
수신자는 귀하의 Gmail 계정에서 이메일을 받게 됩니다.
참고: 일반 Gmail 계정은 MailApp 기능을 사용하여 하루에 최대 100명의 수신자에게 이메일을 보낼 수 있습니다. Google Workspace 계정은 하루에 최대 1,500명의 수신자에게 이메일을 보낼 수 있습니다.
Google 스프레드시트에서 셀 값을 기준으로 이메일을 보내는 방법
이제 Google 스프레드시트에서 이메일을 보내는 스크립트가 준비되었으니, 다음 단계는 스프레드시트의 셀 값에 따라 이메일을 전송하는 것입니다. 스크립트에 코드를 추가하여 특정 셀에 특정 값이 있는 경우에만 이메일이 전송되도록 할 수 있습니다.
셀 값이 다른 경우 이메일이 전송되지 않습니다. 또한, 셀 값이 지정된 임계값보다 높거나 낮거나 특정 텍스트가 포함된 경우에도 이메일을 전송하도록 설정할 수 있습니다.
상단 메뉴에서 확장 프로그램 > Apps Script 순서로 선택하세요.
새로운 탭이 열리면 다음 코드를 복사하거나 입력하세요.
function sendEmailOnTrigger() {
// Define the name of the sheet containing the recipient email address
varemailSheetName = "Emails"; // <<< IMPORTANT: This is the sheet with the recipient email
// Define the cell (A1 notation) in the email sheet where the recipient's email is located
varrecipientCell = "B1"; // <<< IMPORTANT: This is the cell with the email address
// Define the name of the sheet where the trigger cell is located
vartriggerSheetName = "Trigger"; // <<< IMPORTANT: This is the sheet with the trigger value
// Define the cell (A1 notation) to monitor for changes in the trigger sheet
varcellToMonitor = "A2"; // <<< IMPORTANT: This is the cell you want to monitor on the 'Trigger' sheet
// Define the specific value that triggers the email
vartriggerValue = 100; // <<< IMPORTANT: Change this to the value that triggers the email
// Get the currently active spreadsheet
varspreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// --- Get the sheet containing the trigger value ---
vartriggerSheet = spreadsheet.getSheetByName(triggerSheetName);
// Get the value of the cell to monitor from the trigger sheet
varcurrentCellValue = triggerSheet.getRange(cellToMonitor).getValue();
// Check if the current cell value matches the trigger value
if (currentCellValue === triggerValue) {
// If the condition is met, proceed to send the email
// --- Get the sheet containing the recipient email ---
varemailSheet = spreadsheet.getSheetByName(emailSheetName);
// Get the email address from the specified cell in the email sheet
varrecipientEmail = emailSheet.getRange(recipientCell).getValue();
// Define the subject for the email
varemailSubject = "Your Cell Has Reached the Target Value";
// Define the body of the email
varemailBody = "Good news! The cell you were monitoring has now reached the target value";
// Send the email using MailApp service
MailApp.sendEmail(recipientEmail, emailSubject, emailBody);
}
}
emailSheetName을 이메일 주소가 포함된 시트의 이름으로 변경합니다.
receiverCell을 이메일 주소가 포함된 셀로 변경합니다.
트리거 셀이 포함된 시트의 이름과 일치하도록 triggerSheetName을 편집합니다.
cellToMonitor를 트리거 값이 포함된 셀로 변경합니다.
triggerValue를 이메일을 트리거할 값으로 편집합니다.
emailSubject와 emailBody를 보내려는 제목과 메시지로 업데이트하세요.
스크립트를 저장하려면 디스크 아이콘을 클릭하세요.
트리거 셀을 트리거 값이 아닌 다른 값으로 변경합니다.
실행 아이콘을 클릭하면 이메일이 전송되지 않습니다.
트리거 셀을 트리거 값으로 변경합니다.
디스크 아이콘 옆의 실행 아이콘을 클릭하면 이메일이 전송됩니다.
트리거 셀을 트리거 값으로 변경합니다.
실행 아이콘을 클릭하면 이메일이 전송됩니다.
스크립트를 자동으로 트리거하는 방법
위 스크립트는 제대로 작동하려면 수동으로 실행해야 합니다. 하지만 Google 스프레드시트에서 스크립트를 자동으로 실행하도록 설정할 수 있으며 방법은 여러 가지가 있습니다.
특정 셀의 값을 일정에 따라(하루에 한 번, 한 달에 한 번 등) 확인하는 스크립트를 만들거나, 특정 셀의 값이 변경될 때마다 해당 값을 확인하는 스크립트를 만들 수 있습니다.
시간 기반 트리거를 사용하여 스크립트를 트리거하는 방법
시간 기반 트리거를 사용하면 스프레드시트의 특정 셀 값을 정기적으로 확인할 수 있습니다. 값이 조건을 충족하면 스크립트가 이메일을 전송합니다.
상단 메뉴에서 확장 프로그램 > Apps Script 순서로 선택하세요.
상단 메뉴 오른쪽에 위치한 알람 시계처럼 생긴 트리거 아이콘을 클릭합니다.
하단 오른쪽에 위치하는 트리거 추가 버튼을 클릭합니다.
실행할 함수 선택에서 sendEmailOnTrigger 함수를 선택합니다.
이벤트 소스 선택에서 시간 기반을 선택합니다.
시간 기반 트리거 유형 선택 드롭다운을 클릭하고 사용할 옵션을 선택합니다.
특정 시간 기반 트리거에 대한 옵션을 선택하세요. 예를 들어, 주간 타이머의 경우 스크립트가 트리거될 요일과 시간을 선택할 수 있습니다.
저장을 클릭하여 트리거를 저장합니다.
이제 스크립트가 선택하신 일정에 따라 실행됩니다. 스크립트가 실행되면 트리거 값이 조건과 일치하면 이메일이 전송됩니다.
트리거 셀을 편집할 때 스크립트를 트리거하는 방법
트리거 셀의 값이 변경될 때마다 스크립트가 자동으로 실행되도록 설정할 수도 있습니다. 즉, 셀을 수동으로 새 값으로 변경할 때마다 스크립트가 실행되어 새 값이 이메일을 보내기 위한 조건과 일치하는지 확인합니다.
상단 메뉴에서 확장 프로그램 > Apps Script 순서로 선택하세요.
왼쪽 메뉴에서 알람 시계처럼 생긴 트리거 아이콘을 클릭합니다.
하단 오른쪽에 위치하는 트리거 추가 버튼을 클릭합니다.
실행할 함수 선택에서 sendEmailOnTrigger 함수를 선택합니다.
이벤트 소스 선택에서 '스프레드시트에서'를 선택합니다.
이벤트 유형 선택 드롭다운을 클릭하고 편집 시를 선택합니다.
저장을 클릭하여 트리거를 저장합니다.
이제 트리거 셀을 수동으로 변경할 때마다 스크립트가 실행됩니다. 스크립트가 실행되면 트리거 값이 조건과 일치하면 이메일이 전송됩니다.
참고: 수식이 셀 값을 변경하는 경우에는 '편집 시' 및 '변경 시' 트리거가 실행되지 않습니다. 이 문제를 해결하는 가장 쉬운 방법은 시간 기반 트리거를 사용하여 셀 값을 정기적으로 확인하는 것입니다.
Google 시트를 사용하여 이메일 보내기
자동화는 여러분의 삶을 훨씬 더 편리하게 만들어 줄 것입니다. Google 스프레드시트를 사용하여 셀 값을 기반으로 이메일을 발송하는 것은 최소한의 노력으로 이메일 발송을 자동화하는 간단하고 효과적인 방법입니다.
예를 들어, 영업 담당자의 총 매출이 특정 금액을 초과하면 축하 이메일을 발송하는 스프레드시트를 설정할 수 있습니다.
이메일에 구체적인 매출 금액을 포함하여 더욱 개인화된 이메일을 제공할 수도 있습니다.
기본 사항을 알게 되면 원하는 정확한 트리거에 따라 맞춤 이메일을 생성하도록 스크립트를 조정하고 Google 시트를 사용하여 이메일을 무료로 자동화할 수 있습니다.