Skip to content

Email ​

Triggerfish 에이전트를 이메일에 연결하여 IMAP을 통해 메시지를 수신하고 SMTP 릴레이 서비스를 통해 답장을 보낼 수 있습니다. 어댑터는 아웃바운드 이메일에 SendGrid, Mailgun 및 Amazon SES와 같은 서비스를 지원하고, 인바운드 메시지에는 모든 IMAP 서버를 폴링합니다.

기본 분류 ​

Email은 기본적으로 CONFIDENTIAL 분류입니다. 이메일에는 종종 민감한 콘텐츠(계약서, 계정 알림, 개인 서신)가 포함되므로 CONFIDENTIAL이 안전한 기본값입니다.

설정 ​

1단계: SMTP 릴레이 선택 ​

Triggerfish는 HTTP 기반 SMTP 릴레이 API를 통해 아웃바운드 이메일을 전송합니다. 지원되는 서비스는 다음과 같습니다:

서비스API 엔드포인트
SendGridhttps://api.sendgrid.com/v3/mail/send
Mailgunhttps://api.mailgun.net/v3/YOUR_DOMAIN/messages
Amazon SEShttps://email.us-east-1.amazonaws.com/v2/email/outbound-emails

이 서비스 중 하나에 가입하고 API 키를 받으십시오.

2단계: 수신용 IMAP 구성 ​

이메일을 수신하려면 IMAP 자격 증명이 필요합니다. 대부분의 이메일 프로바이더가 IMAP을 지원합니다:

프로바이더IMAP 호스트포트
Gmailimap.gmail.com993
Outlookoutlook.office365.com993
Fastmailimap.fastmail.com993
사용자 정의메일 서버993

Gmail 앱 비밀번호 2단계 인증을 사용하는 Gmail의 경우 IMAP 접근을

위해 앱 비밀번호를 생성해야 합니다. 일반 Gmail 비밀번호는 작동하지 않습니다. :::

3단계: Triggerfish 구성 ​

triggerfish.yaml에 Email 채널을 추가합니다:

yaml
channels:
  email:
    smtpApiUrl: "https://api.sendgrid.com/v3/mail/send"
    imapHost: "imap.gmail.com"
    imapPort: 993
    imapUser: "you@gmail.com"
    fromAddress: "triggerfish@yourdomain.com"
    ownerEmail: "you@gmail.com"

시크릿(SMTP API 키, IMAP 비밀번호)은 triggerfish config add-channel email 중에 입력되며 OS 키체인에 저장됩니다.

옵션타입필수설명
smtpApiUrlstring예SMTP 릴레이 API 엔드포인트 URL
imapHoststring예IMAP 서버 호스트 이름
imapPortnumber아니오IMAP 서버 포트 (기본값: 993)
imapUserstring예IMAP 사용자 이름 (일반적으로 이메일 주소)
fromAddressstring예발신 이메일의 보내는 사람 주소
pollIntervalnumber아니오새 이메일 확인 간격 (밀리초, 기본값: 30000)
classificationstring아니오분류 등급 (기본값: CONFIDENTIAL)
ownerEmailstring권장소유자 확인을 위한 이메일 주소

자격 증명 SMTP API 키와 IMAP 비밀번호는 OS 키체인(Linux: GNOME

Keyring, macOS: Keychain Access)에 저장됩니다. triggerfish.yaml에는 나타나지 않습니다. :::

4단계: Triggerfish 시작 ​

bash
triggerfish stop && triggerfish start

구성된 주소로 이메일을 보내 연결을 확인합니다.

소유자 신원 ​

Triggerfish는 발신자의 이메일 주소를 구성된 ownerEmail과 비교하여 소유자 상태를 결정합니다:

  • 일치 -- 소유자 명령
  • 불일치 -- PUBLIC 테인트를 가진 외부 입력

ownerEmail이 구성되지 않은 경우 모든 메시지가 소유자로부터 온 것으로 처리됩니다.

도메인 기반 분류 ​

더 세밀한 제어를 위해 이메일은 도메인 기반 수신자 분류를 지원합니다. 이는 특히 기업 환경에서 유용합니다:

  • @yourcompany.com에서 온 이메일은 INTERNAL로 분류할 수 있습니다
  • 알 수 없는 도메인에서 온 이메일은 기본적으로 EXTERNAL입니다
  • 관리자가 내부 도메인 목록을 구성할 수 있습니다
yaml
channels:
  email:
    # ... 기타 구성
    internalDomains:
      - "yourcompany.com"
      - "subsidiary.com"

이는 정책 엔진이 이메일의 출처에 따라 다른 규칙을 적용함을 의미합니다:

발신자 도메인분류
구성된 내부 도메인INTERNAL
알 수 없는 도메인EXTERNAL

작동 방식 ​

인바운드 메시지 ​

어댑터는 구성된 간격(기본값: 30초마다)으로 IMAP 서버를 폴링하여 읽지 않은 새 메시지를 확인합니다. 새 이메일이 도착하면:

  1. 발신자 주소가 추출됩니다
  2. ownerEmail에 대해 소유자 상태가 확인됩니다
  3. 이메일 본문이 메시지 핸들러로 전달됩니다
  4. 각 이메일 스레드가 발신자 주소를 기반으로 세션 ID에 매핑됩니다 (email-sender@example.com)

아웃바운드 메시지 ​

에이전트가 응답하면 어댑터는 구성된 SMTP 릴레이 HTTP API를 통해 답장을 보냅니다. 답장에는 다음이 포함됩니다:

  • From -- 구성된 fromAddress
  • To -- 원래 발신자의 이메일 주소
  • Subject -- "Triggerfish" (기본값)
  • Body -- 에이전트의 응답 (일반 텍스트)

폴링 간격 ​

기본 폴링 간격은 30초입니다. 필요에 따라 조정할 수 있습니다:

yaml
channels:
  email:
    # ... 기타 구성
    pollInterval: 10000 # 10초마다 확인

반응성과 리소스 균형 폴링 간격이 짧으면 수신 이메일에 대한 응답이

빨라지지만 IMAP 연결이 더 자주 발생합니다. 대부분의 개인 사용 사례에서 30초가 적절한 균형입니다. :::

분류 변경 ​

yaml
channels:
  email:
    # ... 기타 구성
    classification: CONFIDENTIAL

유효한 등급: PUBLIC, INTERNAL, CONFIDENTIAL, RESTRICTED.