가입 환영 · 비밀번호 재설정 같은 메일을 내 서비스에서 보낼 때 써요. 메일 발송 계정(AWS SES 등)의 키는 리소스가 갖고, 내 서비스는 리소스 토큰만 들고 있어요.
1. 이메일 리소스 만들기
- 프로젝트 › Notification › 리소스 추가 를 눌러요
- 제공자로 이메일 (AWS SES) 를 고르고(자체 메일 서버면 이메일 (SMTP)) 이름을 넣은 뒤 만들기 를 눌러요
- 리소스 상세 › 설정 · 자격증명 에 값을 넣고 설정 저장 을 눌러요
| 제공자 | 넣는 값 |
|---|---|
| 이메일 (AWS SES) | 리전 · Access Key ID · Secret Access Key · 발신 이메일 |
| 이메일 (SMTP) | SMTP 호스트 · 포트 · 사용자명 · 비밀번호 · 발신 이메일 |
발신 주소의 도메인은 그 메일 서비스(SES 등) 쪽에서 먼저 인증돼 있어야 실제로 나가요.
2. 리소스 토큰 받기
이 리소스로 토큰을 발급해요 → 내 서비스에서 리소스 쓰기
3. 코드에서 보내기 (SES)
const zc = createZeroCloudClient({
baseUrl: 'https://api.zerocloud.im',
email: {
baseUrl: '<개발자 센터의 알림 API 주소>',
resourceId: process.env.EMAIL_RESOURCE_ID!,
resourceToken: process.env.EMAIL_RESOURCE_TOKEN!,
},
});
await zc.email.send({
from: 'no-reply@example.com',
to: 'user@example.com',
subject: '가입을 환영합니다',
html: '<p>…</p>',
text: '…', // 선택
replyTo: 'help@example.com', // 선택
});
응답은 접수됐다는 뜻이에요. 실제 발송은 서버가 이어서 해요.
발신 주소 허용 목록
리소스에 발신 주소 허용 목록이 있으면 그 안의 주소로만 보낼 수 있어요. 목록이 비어 있으면 전부 허용이지만, 채워 두는 걸 권해요.
- 목록에 없는 주소로 보내면 403 이에요
- 비교는 글자 그대로예요.
ZeroCloud <no-reply@example.com>처럼 표시 이름을 붙여 보내면 목록에도 그 전체 문자열이 있어야 해요 - 허용 목록은 MCP 의
update_resource_secrets로 바꿔요 (MCP 연결하기)
끝났는지 확인
내 주소로 한 통 보내 보세요. 받은편지함(또는 스팸함)에 오면 끝이에요. 안 오면 발송 서비스(SES 등) 콘솔에서 발신 도메인 인증과 발송 한도를 확인하세요.
막히면 → 자주 막히는 곳