반응형
✨ 명언 생성 후 메일로 전송하는 기능 추가하기 (방법2)
이 글에서는 생성한 명언을 "내 이메일로 받는" 기능을 추가하는 또 다른 방법을 정리해 보겠습니다. 본 글의 목적은 GPTs에 외부 자원을 이용하는 방법을 이해하는 것입니다. 외부 자원은 다양한 종류가 있으며 한 종류인 이메일 전송 기능을 추가해 보겠습니다.
🛠️ 준비물
- 앞서 만들었던 "명언 생성 GPTs"
- Google 계정 (Google Apps Script 사용)
- 메일을 받을 이메일 주소
📍Step 1: 메일 발송용 Webhook 만들기
메일을 전송하기 위해, 간단한 Webhook 파일을 만들게 됩니다.
Google Apps Script(GAS)를 활용해 무료로 작성할 수 있습니다.
1.1 Google Apps Script 새 프로젝트 만들기
- Google Apps Script 에 접속
- "새 프로젝트" 클릭
1.2 코드 작성
함수 부분에 다음 코드를 작성합니다.
/**
* POST 요청으로 받은 JSON 바디에서
* { to, subject, quote }
* 필드를 추출해 GmailApp.sendEmail 로 전송합니다.
*/
function doPost(e) {
try {
// 1) 요청 바디 파싱
const body = JSON.parse(e.postData.contents);
const to = body.to;
const subject = body.subject || '오늘의 명언';
const quote = body.quote;
// 2) 필수값 검증
if (!to || !quote) {
return ContentService
.createTextOutput(JSON.stringify({ error: 'to와 quote를 모두 입력해야 합니다.' }))
.setMimeType(ContentService.MimeType.JSON);
}
// 3) 메일 전송
GmailApp.sendEmail(to, subject, quote);
// 4) 성공 응답
return ContentService
.createTextOutput(JSON.stringify({ status: 'success' }))
.setMimeType(ContentService.MimeType.JSON);
} catch (err) {
// 에러 응답
return ContentService
.createTextOutput(JSON.stringify({ error: err.message }))
.setMimeType(ContentService.MimeType.JSON);
}
}
1.3 배포하기 (Webhook URL 만들기)
- 프로젝트 메뉴에서 "배포" → "웹 앱으로 배포" 클릭
- "새 버전 만들기" 선호
- 다음과 같이 설정
- 웹 앱 액세스: "여러 사용자 (익명)"
- 배포 후 URL 복사
1.4 설정 ISSUE
- Google Apps Script API 사용으로 설정하기
📍Step 2: GPTs Builder에서 메일 발송 기능 추가
GPTs Builder에서 명언 생성에 관한 앱의 이름, 설명 그리고 지침등을 입력한 후 Action 작업을 다음과 같이 설정합니다.
2.1 Actions 설정하기
- "구성" 탭에서 "Action 추가" 버튼 클릭
- 인증란에는 없음으로 선택한 후에 스키마 부분에 다음을 입력합니다.
"url": "https://script.google.com/macros/s/XXXXXXXXX/exec" 에는 여러분들이 Google Apps Script 에서 생성한 프로젝트에서 발급된 url를 그대로 작성합니다. (보안 부분은 고려하지 않음)
{
"openapi": "3.1.0",
"info": {
"title": "명언 메일 전송 API",
"version": "1.0.0",
"description": "GPT가 생성한 명언을 받아서 Gmail로 전송하는 Webhook 액션 스키마"
},
"servers": [
{
"url": "https://script.google.com/macros/s/XXXXXXXXX/exec",
"description": "명언 전송용 Webhook URL"
}
],
"paths": {
"/exec": {
"post": {
"operationId": "sendQuote",
"summary": "명언 메일 전송",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SendQuoteRequest"
}
}
}
},
"responses": {
"200": {
"description": "성공 시 반환",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "‘success’ 또는 ‘error’"
},
"error": {
"type": "string",
"description": "실패 시 에러 메시지"
}
},
"required": [
"status"
]
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"SendQuoteRequest": {
"type": "object",
"required": [
"to",
"quote"
],
"properties": {
"to": {
"type": "string",
"format": "email",
"description": "수신자 이메일 주소"
},
"subject": {
"type": "string",
"description": "메일 제목 (미지정 시 ‘오늘의 명언’ 사용)",
"default": "오늘의 명언"
},
"quote": {
"type": "string",
"description": "전송할 명언 텍스트"
}
}
}
}
}
}
2.2 지시문(Instructions) 수정
Action을 연결한 후, 지시문을 같이 수정해야 합니다.
- 수정된 Instructions 예시(1)
사용자가 명언을 생성해달라고 요청하면 하루를 공정적으로 시작할 수 있는 짧은 명언을 생성하세요.
사용자가 "메일로 보내줄래" 또는 메일 발송을 원하면, 생성한 명언을 외부 Webhook을 통해 사용자 지정 이메일 주소로 전송하세요.
메일 제목은 "오늘의 명언", 부문은 생성한 명언입니다.
- 수정된 Instructions 예시(2)
# 시스템
당신은 오늘의 명언을 생성하고, 사용자가 지정한 이메일로 전송하는 역할을 합니다.
# 사용자 예시
“오늘의 명언을 하나 만들어서
to: yyy@zzz.com
subject: “하루 한 줄”
quote: <생성된 명언 텍스트>
이렇게 Webhook에 POST 요청을 보내고,
성공 여부를 알려줘.”
📍Step 3: 기능 테스트
GPTs를 시작하고 다음과 같이 입력 후 메일 전송을 확인합니다.
GPTs에서 외부 자원을 이용하는 경우는 다양합니다. 그리고 이전 글과 현재 글에서 언급한 메일 전송도 외부 자원이며 메일을 연동하는 방법도 다양합니다. 외부 자원 연동하는 다양한 방법을 익히고 프로젝트의 규모 및 용도에 따라 선택하여 사용합니다.
반응형
'AI > 생성형AI' 카테고리의 다른 글
[GPT업무자동화](8)GPTs로 실시간뉴스 보기(Google Apps Script) (2) | 2025.05.08 |
---|---|
[GPT업무자동화](7)GPTs로 실시간 뉴스 보기(Cloudflare Workers) (0) | 2025.05.08 |
[GPT업무자동화](5)GPTs에 메일 외부 자원 연동(OAuth) (1) | 2025.05.06 |
[AI미래]GPT-5시대 우리의 준비 (5) | 2025.05.02 |
[GPT업무자동화](4)GPTs에서 Action 활용 (0) | 2025.04.29 |