이메일 트리거 확장 프로그램으로 전송 상태 관리

문서가 컬렉션에 추가되면 확장 프로그램에서 이메일 전송 처리를 위해 해당 문서를 선택합니다. 확장 프로그램은 이메일이 처리될 때 문서에 delivery 필드를 만들고 업데이트합니다.

이메일 전송 처리

delivery 필드는 다음의 필드로 채워질 수 있습니다.

  • state: PENDING, PROCESSING, SUCCESS 또는 ERROR 중 하나입니다.
  • startTime: 이메일 처리가 시작된 타임스탬프입니다.
  • endTime: 이메일 처리가 완료된 타임스탬프입니다(SUCCESS 또는 ERROR 상태로 종료).
  • error: 이메일 전송 오류가 발생하면 여기에 오류 메시지가 입력됩니다.
  • attempts: 이 이메일의 전송 시도 횟수입니다.
  • leaseExpireTime: 작업 중단 또는 시간 초과가 발생하는 경우 PROCESSING 상태가 오류로 간주되는 시간입니다.
  • info: 하나 이상의 주소로 이메일을 성공적으로 전송한 후 이 필드는 다음의 필드로 채워집니다.
    • messageId: 전송된 이메일의 메시지 ID입니다.
    • accepted: 이메일이 성공적으로 전송된 이메일 주소의 배열입니다.
    • rejected: 이메일을 전송할 수 없는 이메일 주소의 배열입니다.
    • pending: SMTP에 의해 일시적으로 거부된 이메일 주소의 배열입니다.
    • response: SMTP 서버의 마지막 응답입니다.

일반적으로 이메일은 PENDING에서 PROCESSING을 거쳐 SUCCESS 또는 ERROR로 상태가 전환됩니다. SUCCESS 또는 ERROR 상태가 되면 문서에 추가적인 변경사항이 발생해도 확장 프로그램은 다른 이메일을 전송하지 않습니다. 문서 업데이트로 이메일을 다시 전송하려면 statePENDING 또는 RETRY로 변경하면 됩니다.

수동 재시도

이메일 전송이 복구 가능한 방식으로 실패하거나 문서를 직접 약간만 수정하여 정상적으로 전송할 수 있는 경우가 있습니다. 재시도는 자동이 아니지만 확장 프로그램이 이메일 전송을 다시 시도하도록 delivery 필드에서 stateRETRY로 수동 변경할 수 있습니다(이 경우 attempts의 수가 늘어남).