이메일 (SMTP)
모든 SMTP 릴레이를 통해 전송 전용으로 동작하며, 첫 번째 줄이 제목으로 자동 분리되고 본문은 컴플라이언스 및 보관 파이프라인으로 자연스럽게 연결됩니다.
🟢 런타임 준비 완료.
nodemailer(MIT)를 래핑합니다. 스트리밍은 지원하지 않습니다. 이메일은 전송 즉시 원자적으로 처리됩니다. 공유createStreamSink헬퍼는 증분 델타를 버퍼링한 뒤 완료 시점에 단일 메시지를 발송합니다.
제공 기능
- Gmail, Office 365, SES, Postmark, Mailgun, 자체 호스팅 등 모든 SMTP 릴레이와 호환
- 제목 자동 분리: 메시지 텍스트의 첫 번째 줄이 짧고(120자 이하, 줄 바꿈 없음)단독 행이면 해당 줄이 제목이 되고 나머지가 본문이 됩니다. 조건을 충족하지 않으면 제목은 "Minara alert"로 설정됩니다. 이를 통해 LLM이 두 개의 필드를 별도로 학습하지 않고도 자연스러운 알림을 작성할 수 있습니다
channel을 통한 메시지별 수신자 재정의. 중요 알림을 페이저 주소로 라우팅할 때 유용합니다
설정
1. 릴레이 선택
가장 간편한 방법을 선택하십시오.
| 릴레이 | 호스트 | 포트 | 비고 |
|---|---|---|---|
| Gmail(개인) | smtp.gmail.com | 587 | 본 계정 비밀번호가 아닌 앱 비밀번호 필요 |
| Office 365 | smtp.office365.com | 587 | 프로덕션 환경에서는 OAuth만 권장. SMTP 기본 인증은 단계적으로 폐지 중 |
| AWS SES | email-smtp.{region}.amazonaws.com | 587 | 임의 수신자에게 발송하려면 계정이 샌드박스를 벗어나야 함 |
| Postmark | smtp.postmarkapp.com | 587 | 서버 API 토큰이 SMTP 사용자명 및 비밀번호와 동일 |
| 자체 호스팅 | 직접 지정 | 587 또는 465 | 포트 465에서는 secure: true 자동 활성화 |
2. Minara 설정
간편 방법. Agent에 직접 요청하십시오.
"이메일 알림 설정해줘. SMTP 설정 알려줄게"
수동 방법:
minara auth messaging add email또는 프로젝트 루트의 .env 파일에 직접 입력하십시오.
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
[email protected]
SMTP_PASSWORD=your-app-password
[email protected]
[email protected]SMTP_USER와 SMTP_PASSWORD는 선택 사항입니다. 인증이 없는 오픈 릴레이(예: 내부 SMTP 게이트웨이)에서는 두 항목 모두 생략할 수 있습니다.
3. 테스트
minara auth messaging test emailEMAIL_TO로 수신된 메시지의 제목이 "Minara alert, test ping"인지 확인하십시오.
제목 및 본문 구성
다음과 같은 text가 주어지면:
Position liquidated, BTC long @ $61 800
Reason: 3σ drawdown on 15m chart; watching for re-entry.Minara는 아래와 같이 이메일을 발송합니다.
Subject: Position liquidated, BTC long @ $61 800
Body: Reason: 3σ drawdown on 15m chart; watching for re-entry.첫 번째 줄이 120자를 초과하거나 텍스트에 단락 구분을 위한 줄 바꿈이 없으면, 전체 텍스트가 본문이 되고 제목은 "Minara alert"로 대체됩니다.
수신자 재정의
send_message({
provider: "email",
channel: "[email protected]",
text: "Critical: position liquidation imminent",
})EMAIL_TO를 재설정하지 않고도 페이저 또는 컴플라이언스 라우팅에 활용할 수 있습니다.
문제 해결
Gmail: "Username and Password not accepted"
- 본 계정 비밀번호를 사용 중입니다. 앱 비밀번호에서 "Mail"용 앱 비밀번호를 생성한 뒤
SMTP_PASSWORD에 입력하십시오. Google 계정의 2단계 인증이 필요합니다
Office 365: "5.7.57 SMTP client was not authenticated"
- 테넌트에서 SMTP 기본 인증이 비활성화되어 있습니다. 안정적인 프로그래밍 방식 발송을 위해 SES, Postmark, Mailgun을 사용하거나, 관리자에게 해당 사서함의 SMTP AUTH 활성화를 요청하십시오(Microsoft가 단계적 폐지를 진행 중입니다)
SES: "554 Message rejected (still in sandbox)"
- AWS 계정에 아직 SES 프로덕션 액세스 권한이 부여되지 않았습니다. SES 콘솔에서 요청하십시오. 승인까지 약 1일이 소요됩니다
메시지가 스팸으로 분류됨
EMAIL_FROM도메인에 SPF, DKIM, DMARC를 설정하십시오. 설정이 없으면 Gmail 등의 게이트웨이가 프로그래밍 방식 메일을 스팸으로 처리할 수 있습니다
"Stream doesn't appear live"
- 정상 동작입니다. 이메일에는 스트리밍 인터페이스가 없습니다. Minara는 전체 응답을 버퍼링한 뒤 완료 시점에 한 번만 발송합니다