상담 신청

구글 폼 부가기능(Add-ons): 이메일 자동 발송 설정

증상 확인: 이메일 발송이 되지 않거나, 자동화가 예상대로 작동하지 않음

구글 폼의 응답을 받을 때마다 자동으로 이메일을 발송하려고 부가기능(Add-ons)을 설치했는데, 전혀 작동하지 않거나 간헐적으로만 작동합니다. “권한 부여가 필요합니다”라는 메시지만 반복되거나, 스크립트 오류 로그에 ‘권한 없음’이 표시되는 경우가 대표적입니다, 이 문제는 대부분 부가기능의 실행 권한과 트리거 설정의 미스매치에서 비롯됩니다.

원인 분석: OAuth 동의 화면과 트리거 권한의 불일치

구글 워크스페이스 환경(회사/학교 계정)을 사용 중이라면, 관리자가 타사 앱에 대한 접근을 제한했을 수 있습니다. 개인 계정이라도 가장 흔한 원인은 부가기능이 요구하는 권한 범위와 실제 발송 스크립트가 사용하는 API 간의 차이입니다. 예를 들어, 폼 응답을 읽는 권한만 부여했지만, 이메일을 보내려면 Gmail API에 대한 추가 권한이 필요합니다. 뿐만 아니라, 간과하기 쉬운 점은 ‘설치 시 권한 부여’와 ‘실제 실행 시 권한’이 다를 수 있다는 것입니다. 트리거(예: 폼 제출 시)를 통해 실행되는 함수는 명시적인 권한 재부여 과정 없이는 실패할 확률이 높습니다.

해결 방법 1: 기본 권한 재설정 및 테스트 실행

먼저 가장 간단한 조치부터 시작합니다. 부가기능의 권한 캐시를 초기화하고 핵심 기능이 정상인지 테스트합니다.

  1. 구글 폼을 열고 상단 메뉴에서 확장 프로그램 > 부가기능 > 관리를 클릭합니다.
  2. 문제의 부가기능을 선택하고 설정 아이콘(기어 모양)을 클릭한 후 부가기능 관리를 선택합니다.
  3. 새로 열린 탭에서 해당 부가기능 옆의 사용 안함을 클릭하여 완전히 비활성화한 후, 다시 사용으로 전환합니다. 이 과정에서 새로운 OAuth 동의 화면이 나타날 수 있습니다.
  4. 부가기능 메뉴로 돌아가 테스트 실행 또는 시작하기와 같은 옵션이 있다면 실행해 봅니다. 이 단계에서 명시적인 권한 부여를 요청받아야 합니다. 모든 권한에 동의하십시오.

이 조치로도 해결되지 않는다면, 부가기능의 스크립트 자체에 접근해야 합니다.

해결 방법 2: Apps Script 프로젝트의 권한 및 트리거 재설정

대부분의 구글 폼 부가기능은 Google Apps Script로 작성됩니다. 여기서 권한 문제를 근본적으로 해결할 수 있습니다.

주의사항: 이 단계에서는 부가기능의 스크립트 코드를 수정하지 않습니다. 설정만 변경합니다. 하지만 작업 전에, 확장 프로그램 > Apps Script 메뉴에서 프로젝트의 코드를 확인해, 중요한 사용자 함수가 삭제되지 않았는지 확인하는 것이 좋습니다.

  1. 구글 폼에서 확장 프로그램 > Apps Script를 클릭해 스크립트 편집기를 엽니다.
  2. 왼쪽 사이드바의 트리거 아이콘(시계 모양)을 클릭합니다.
  3. 기존에 구성된 트리거(예: ‘양식 제출 시 – 함수명’)가 보일 것입니다. 각 트리거 오른쪽의 연필(수정) 아이콘을 클릭합니다.
  4. 실행 권한 섹션을 확인합니다. ‘내가 아닌 사용자가 양식을 제출할 때: 앱을 실행하는 사람: 나’로 설정되어 있는지 확인하십시오. 이 설정은 폼 응답자가 누구든, 이메일 발송 스크립트는 당신의 권한으로 실행되도록 보장합니다. 다른 옵션으로 되어 있다면 변경하세요.
  5. 트리거를 저장합니다. 기존 트리거를 삭제하고 새로 만들 수도 있습니다.
  6. 이제 권한을 완전히 갱신합니다. 스크립트 편집기에서 실행 > 함수 실행을 클릭합니다. 드롭다운 메뉴에 특정 함수가 나열될 수 있습니다. 만약 이메일 발송을 테스트하는 함수(예: `sendTestEmail`)가 있다면 그것을, 없다면 주 함수(예: `onFormSubmit`)를 선택합니다.
  7. 권한 검토를 요청하는 팝업이 나타납니다. 권한 확인을 클릭하고, 나타나는 새 탭에서 당신의 계정을 선택한 후 허용을 클릭합니다. 이 과정이 스크립트가 필요로 하는 모든 API 권한(Forms, Gmail, Drive 등)을 최신 상태로 부여합니다.

해결 방법 3: 스크립트 코드 내 권한 범위 명시적 선언 및 로깅 추가

방법 2로도 해결이 안 되거나, 더 안정적인 구성을 원한다면 코드 수준에서 접근합니다. 스크립트의 최상단에 필요한 권한을 명시하고, 오류 발생 시 원인을 파악할 수 있는 로그를 추가합니다.

백업의 중요성: 코드를 수정하기 전에, 스크립트 편집기에서 파일 > 버전 관리 > 새 버전 저장…을 클릭하여 현재 상태를 백업하십시오. 실수했을 때 이전 버전으로 돌아갈 수 있습니다.

  1. Apps Script 편집기에서 `appsscript.json` 파일을 확인합니다. 왼쪽 파일 탐색기에서 보이지 않는다면. 프로젝트 설정 아이콘(기어 모양) > manifest 파일 표시를 켠 후 확인하세요. 이 파일에 `oauthScopes` 필드가 있는지 봅니다.
  2. 필요한 권한 범위(scope)가 선언되어 있지 않다면 추가합니다. 일반적인 이메일 발송 부가기능에 필요한 범위는 다음과 같습니다.
    • https://www.googleapis.com/auth/forms.responses.readonly
    • https://www.googleapis.com/auth/gmail.send
    • https://www.googleapis.com/auth/spreadsheets.currentonly (응답 시트를 사용할 경우)
  3. 주요 함수(예: `onFormSubmit`) 시작 부분에 로깅 코드를 추가해 실행 흐름과 오류를 추적합니다. function onFormSubmit(e) {
    console.log(‘함수 실행 시작: ‘, new Date()); // 실행 확인
    try {
    // 기존 이메일 발송 로직… MailApp.sendEmail(recipient, subject, body);
    console.log(‘이메일 발송 성공: ‘, recipient);
    } catch (error) {
    console.error(‘이메일 발송 실패: ‘, error.toString()); // 오류 상세 기록
    }
    }
  4. 코드를 저장한 후, 실행 > 함수 실행에서 `onFormSubmit`을 테스트 실행하여 다시 권한을 부여받습니다. 이후 실제 폼을 제출해 보고, 실행 로그(보기 > 로그)에서 메시지를 확인합니다.

주의사항 및 예방 조치

자동화 스크립트는 한 번 설정해도 환경 변화로 인해 작동이 중단될 수 있습니다. 다음 사항을 체크하여 문제를 예방하십시오.

  • Gmail 일일 발송 한도: 개인 Gmail 계정은 하루 500통, G Suite/Workspace 계정은 구독 플랜에 따라 1,000~2,000통의 한도가 있습니다. 이를 초과하면 조용히 실패합니다.
  • 트리거 비활성화: 스크립트 편집기에서 트리거가 실패한 경우, 일정 횟수 후 자동으로 비활성화됩니다. 트리거 페이지를 정기적으로 점검해야 합니다.
  • 변수 및 시트 이름 변경: 스크립트가 특정 시트 이름이나 셀 범위를 하드코딩했다면, 폼 연동 스프레드시트의 구조를 변경하면 스크립트가 깨집니다.

전문가 팁: 배포를 통한 안정성 확보
부가기능이 복잡하거나 여러 사람이 사용해야 한다면, ‘배포’를 고려하세요. 스크립트 편집기에서 배포 > 새 배포를 선택합니다. ‘설정 유형’을 부가기능으로, ‘실행 권한’을 나(본인)으로 설정합니다. 이렇게 배포된 버전은 코드를 수정해도 배포된 버전은 유지되며, 사용자에게는 일관된 버전이 제공됩니다. 또한 배포마다 고유 ID가 부여되어 권한 및 버전 관리가 훨씬 수월해집니다. 테스트가 완료된 안정적인 코드 버전을 배포하고, 실제 운영에서는 이 배포판을 사용하도록 하십시오. 이처럼 버전 관리와 설정 최적화는 커뮤니케이션 도구에서도 동일하게 중요한데, 디스코드 서버 지역 변경 및 음성 채널 비트레이트 설정을 통해 서버 성능을 최적화하면 음성 품질과 지연 시간을 크게 개선할 수 있습니다. 사용자 수와 지역에 따라 적절한 서버 리전과 비트레이트를 선택하는 것이 안정적인 운영의 핵심입니다.

더 많은 정보가 필요하신가요?

Trust Office의 전문 상담원이 도움을 드리겠습니다.