문서로 건너뛰기
API

SMTP로 보내기

SMTP를 쓰는 소프트웨어를 위한, POST /emails와 같은 발송입니다.

연결하기

SMTP 서버를 통해 메일을 보내는 것이라면 무엇이든 OpenEmail을 통해 보낼 수 있습니다. 프레임워크의 메일러, CMS, 모니터링 도구, 프린터 등입니다. 사용자 이름 openemail과 비밀번호로 쓰는 API 키로 로그인하세요. 키에는 emails:send 스코프가 필요하며, 키가 넘기는 메시지는 그 키로 호출한 POST /emails와 같은 발송입니다.

설정값
호스트smtp.openemail.uk
포트SSL/TLS는 465, STARTTLS는 587
사용자 이름openemail
비밀번호emails:send 스코프가 있는 API 키
로그인PLAIN 또는 LOGIN, 대부분의 소프트웨어가 일반 비밀번호라고 부르는 방식

암호화되지 않은 연결은 전혀 받지 않으며, 포트 587에서는 STARTTLS 이후에만 로그인이 열립니다. API 키로는 보내기 위한 로그인만 할 수 있습니다. IMAP이나 POP3로 메일함을 읽으려면 앱 비밀번호가 필요합니다.

테스트 메시지 보내기

메시지를 message.eml로 저장하고 curl로 넘기세요. From은 키가 발신자로 쓸 수 있는 주소여야 합니다.

message.eml
From: Acme <[email protected]>To: [email protected]Subject: Hello over SMTPMessage-ID: <[email protected]> It works.
포트 465
curl --url "smtps://smtp.openemail.uk:465" \  --user "openemail:$OPENEMAIL_API_KEY" \  --mail-from "[email protected]" \  --mail-rcpt "[email protected]" \  --upload-file message.eml --crlf
포트 587
curl --ssl-reqd --url "smtp://smtp.openemail.uk:587" \  --user "openemail:$OPENEMAIL_API_KEY" \  --mail-from "[email protected]" \  --mail-rcpt "[email protected]" \  --upload-file message.eml --crlf

수락된 메시지에 대한 응답은 250 2.0.0 OK queued as이며, 그 뒤에 메시지의 id가 붙습니다. 이 id는 GET /emails/{id}가 받는 바로 그 id이므로, 메시지와 그 이벤트, 추적은 다른 발송과 똑같이 읽을 수 있습니다.

메시지가 발송이 되는 과정

메시지는 REST 발송과 같은 경로로 읽히고 발송됩니다. 따라서 바이트 그대로 전달되지 않고 각 파트로부터 다시 조립됩니다.

메시지에서발송에서
Fromfrom. 필수이며, 키를 대조해 확인하는 발신자입니다. MAIL FROM의 주소는 있기만 하면 됩니다.
RCPT TO메시지가 전달되는 대상이며, 최대 50명입니다. To에 적힌 수신자는 to, Cc에 적힌 수신자는 cc, 어느 쪽에도 없는 수신자는 bcc입니다. 적어도 한 명은 To에 있어야 합니다.
Reply-ToreplyTo, 첫 번째 주소입니다.
Subjectsubject.
텍스트 파트와 HTML 파트text와 html. HTML이 cid:로 참조하는 이미지는 그 자리에 삽입됩니다.
첨부 파일attachments: 파일은 최대 20개, 합계 5 MB까지입니다.
그 밖의 헤더X-*, List-*, Precedence, Auto-Submitted, Importance, Priority, Feedback-ID는 유지됩니다. 그 밖의 헤더는 모두 빠집니다.
X-OpenEmail-Streamstream: transactional 또는 broadcast. 이 헤더는 메시지가 나가기 전에 제거됩니다.

적용되는 것

경로가 하나이므로, REST 발송에 적용되는 모든 것이 여기에도 적용됩니다.

  • 키의 스코프, 그리고 키가 제한된 주소와 도메인.
  • 발신자 확인: From은 발송할 수 있는 도메인의 주소이면서 키가 발신자로 쓸 수 있는 주소여야 합니다.
  • 워크스페이스의 발송 허용량과 발송 차단 목록.
  • 보내는 주소의 서명과 열람 및 클릭 추적. signature도 tracking도 지정하지 않은 REST 발송과 같습니다.
  • 레인: 단체 발송 레인이 일시중지된 동안에는 X-OpenEmail-Stream: broadcast가 붙은 메시지가 거부됩니다.
  • 웹훅과 전달 이벤트. 둘 다 250 응답에 담긴 id로 메시지를 가리킵니다.

재시도

Message-ID가 있는 메시지는 한 번만 발송됩니다. 같은 수신자에게 같은 Message-ID를 다시 넘기면 첫 메시지의 id로 응답하고 아무것도 보내지 않으므로, 연결이 끊긴 뒤 재시도하는 소프트웨어가 두 번 보낼 수 없습니다. 같은 메시지라도 수신자가 다르면 별개의 발송입니다. 멱등성을 참고하세요.

응답과 한도

응답발생 조건
250 2.0.0메시지가 대기열에 들어갔으며, 그 id가 뒤따릅니다.
535 5.7.8로그인에 실패했습니다. 키가 틀렸거나 폐기되었거나 만료된 경우, 키에 emails:send가 없는 경우, 또는 API 키를 다른 사용자 이름으로 쓴 경우입니다.
452 4.5.3메시지 하나에 수신자가 50명을 넘습니다. 메일 소프트웨어가 나머지를 알아서 다른 메시지로 보냅니다.
552 5.3.4메시지가 25 MB보다 큽니다.
550 5.6.0메시지를 쓰인 그대로는 보낼 수 없습니다. From이 없거나, To에 아무도 없거나, 첨부 파일이 너무 많거나 크거나, 알 수 없는 레인인 경우입니다. 어느 경우인지는 응답 텍스트에 나옵니다.
550 5.7.1발송이 거부되었습니다. 키가 그 주소를 발신자로 쓸 수 없거나, 도메인이 아직 발송할 수 없거나, 단체 발송 레인이 일시중지된 경우입니다.
452 4.7.0워크스페이스의 발송 허용량을 다 썼습니다.
451 4.7.1키 하나에서 1분에 메시지가 300통을 넘었습니다. 메일 소프트웨어가 기다렸다가 다시 시도합니다.
451 4.3.0우리 쪽 장애입니다. 잠시 후 다시 시도하세요.

보낼 것이 없는 연결은 5분 뒤에 닫힙니다. 연결 하나로 메시지를 몇 통이든 차례로 보낼 수 있습니다.

요청 로그에서

키가 넘기는 모든 메시지는 그 키의 요청 로그에 한 줄로 남습니다. 메서드는 SMTP, 경로는 /emails이며, 상태는 REST 발송이었다면 받았을 값입니다. 대기열에 들어가면 202, 거부되면 같은 오류 code와 함께 403, 422 또는 429입니다. GET /keys/{id}/requests?path=/emails는 이를 REST 발송과 나란히 나열합니다. 실제 키로 로그인에 실패하면 그 키의 활동에 나타납니다.