메일은 제품이 받고
답장은 코드가 씁니다
티켓, 항목, 고객마다 자기 주소를 가질 수 있습니다. 그 주소로 온 메일은 서명된 이벤트로 엔드포인트에 도착하고, 코드가 그 주소로 답합니다.
아무도 이 주소들을 만들지 않았습니다. 답장은 메일이 도착한 주소에서 나갑니다.
출발점
지금은 이런 모습입니다.
답장이 제품 밖으로 떨어집니다
고객이 알림 메일에 답하면, 그 답장은 해당 항목이 아니라 공용 메일함에 남습니다.
주소를 매번 사람이 먼저 만듭니다
새 티켓에 메일함이 생기기 전에는 메일을 보낼 수 없어서, 주소를 손으로 만들어 둡니다.
서버가 새 메일을 계속 확인합니다
메일이 도착했다고 코드에 알려 주는 것이 없어서, 작업이 타이머에 맞춰 메일함을 확인합니다.
작동 방식
네 단계면 돌아갑니다.
- 01
도메인을 OpenEmail로 연결
도메인을 추가하고 레코드를 게시하면, 아무도 만들지 않은 주소까지 그 도메인의 모든 주소가 메일을 받습니다.
- 02
타입이 있는 클라이언트 설치
앱에 패키지를 추가하고, 나중에 범위를 정하거나 취소할 수 있는 워크스페이스 키를 설정하세요.
- 03
엔드포인트 등록
원하는 이벤트를 고르고, 서명 비밀 키를 복사한 뒤, 전달마다 5초 안에 응답하세요.
- 04
코드에서 답장
id로 대화와 파일을 가져온 다음, 메일이 배달된 그 주소로 보내세요.
바탕이 되는 기능
일을 해내는 구성 요소.
문서화된 HTTP API, 타입이 있는 클라이언트, 엔드포인트로 가는 웹훅, 여기로 연결한 모든 도메인의 캐치올 주소, 그리고 자체 브랜딩과 파일, 추적 링크 위에서 돌아갑니다.
발급하고, 범위를 정하고, 폐기할 수 있는 키를 갖춘 문서화된 HTTP API.
TypeScript 클라이언트를 먼저, 나머지는 그다음.
폴링하게 두지 않고, 메일이 도착하면 엔드포인트에 알립니다.
도메인의 모든 주소가, 한 번도 만든 적 없는 주소까지 메일을 받습니다. 스위치 하나로 닫힙니다.
실제 활용
구성 요소별로 하나씩.
이 아래에 짧은 페이지 네 개가 일 하나씩 다룹니다. 고객마다 주소 하나, 코드에서 나가는 메일, 코드로 들어오는 메일, 그리고 아직 준비 중인 테스트 실행마다 주소 하나.
티켓, 레코드, 고객마다 전용 주소를 주세요. 따로 만들 것은 없습니다.
질문
가입 전에 자주 묻는 것.
쓰기 전에 주소를 먼저 만들어야 하나요?
아니요. 캐치올이 켜져 있으면 [email protected]은 누가 처음 보내는 순간부터 받습니다. 오타나 지어낸 주소로 온 메일도 함께 들어오며, 스위치 하나로 캐치올을 닫을 수 있습니다.
메일이 도착한 것을 제 코드가 어떻게 아나요?
메일이 도착하고 몇 초 뒤에 엔드포인트가 서명된 웹훅을 받습니다. 이벤트에는 대화와 배달된 주소가 담겨 있으므로, id로 메일과 파일을 가져오면 됩니다.
제가 쓰는 언어용 클라이언트가 있나요?
TypeScript가 아니라면 아직 없습니다. 타입이 있는 클라이언트는 TypeScript가 먼저이고 나머지는 그 뒤를 따르므로, 지금은 다른 언어에서 문서화된 HTTP API를 직접 호출합니다.
관련 사례
같은 메일함으로 할 수 있는 다른 일.
앱이 메시지를 보내면 OpenEmail이 자사 도메인으로 발송합니다. 모든 호출은 그 호출을 만든 키에 기록되고, 발송마다 읽을 수 있는 결과가 남습니다.