문서로 건너뛰기
Java

헬퍼와 상수

클라이언트의 메서드 외에 패키지가 정의하는 것.

정적 메서드

메서드설명
new OpenEmail(), OpenEmail.builder()클라이언트입니다. 둘 다 생략한 값을 환경에서 읽습니다.
OpenEmail.createTempMail()API 키를 담지 않는 일회용 받은편지함 클라이언트.
OpenEmail.verifyWebhookSignature()전달의 서명을 상수 시간으로 확인하고 이벤트를 반환합니다. 5분의 허용 시간은 Duration으로 바꿀 수 있습니다.
OpenEmail.toBase64()첨부 파일의 바이트를 나타내는 base64 텍스트.
OpenEmail.isApiKey()값이 oe_live_ 또는 oe_test_ 형태인지 확인합니다. 형태 검사일 뿐, 키가 아직 유효하다는 증거는 아닙니다.
OpenEmail.isAccessToken()값이 OAuth 액세스 토큰의 형태인지 여부입니다: 1~512자이고 oe_로 시작하지 않아야 합니다.
OpenEmail.isSealed()메시지의 본문이 암호문인지 여부입니다. 두 서명 형식에서는 본문이 평문으로 도착했으므로 false입니다.
OpenEmail.resolveLanguage(), OpenEmail.languageByCode(), OpenEmail.isRtlLanguage()언어 선택기에 필요한 조회 기능으로, 함께 제공되는 Languages.ALL 표를 사용합니다.
client.raw().request()아직 메서드가 없는 경로를 클라이언트의 자격 증명과 재시도 정책으로 호출합니다.

상수

TypeScript SDK가 내보내는 모든 값 집합은 uk.openemail.constants의 final 클래스이며, 멤버마다 같은 이름의 상수가 하나씩 있습니다. 그래서 WebhookEvents.EMAIL_DELIVERED는 email.delivered입니다. values()는 집합 전체를 반환하므로, 외부에서 들어온 값을 확인하는 데에도 쓸 수 있습니다.

Constants.java
List<String> events = WebhookEvents.values();List<String> scopes = List.of(ApiScopes.EMAILS_SEND, ApiScopes.THREADS_READ);boolean known = events.contains("email.delivered"); System.out.println(events.size() + " " + String.join(",", scopes) + " " + PageLimits.MAX_LIMIT + " " + known);
상수담긴 내용
OpenEmail.VERSION패키지 버전입니다.
ApiScopes키 생성 화면에서 쓸 스코프 어휘입니다.
WebhookEvents, WebhookSignatureHeaders엔드포인트가 구독할 수 있는 이벤트와, 전달 요청에 담기는 헤더 이름입니다.
ErrorTypesApiException.type()이 반환하는 오류 어휘.
PageLimits대부분의 페이지 목록에서 limit의 최댓값과 기본값인 MAX_LIMIT과 DEFAULT_LIMIT: 100과 25. 몇몇 목록은 더 많이 받으며, 각 메서드의 참조에 나와 있습니다.
RuleFields, RuleOperators, RuleActions규칙의 조건과 동작을 구성하는 어휘입니다.
MessageEncryptionFormats수신 처리가 식별할 수 있는 다섯 가지 봉투. 그중 셋은 봉인되어 있습니다.
CredentialKinds, StepUpMethods, StepUpErrorCodesme().get과 me().ping이 설명하는 자격 증명의 종류, 인증 코드를 확인하는 방식, 그리고 확인이 실패할 때의 코드.
ThreadSorts, PeopleSorts, FileSorts와 그 밖의 *Sorts목록을 정렬할 수 있는 순서.
FormStatuses, BroadcastStatuses, SuppressionReasons와 그 밖의 집합리소스의 필드가 가질 수 있는 값. 각 집합은 담고 있는 것의 이름을 따릅니다.
Languages.ALL번역 발송이나 미리보기가 받는 모든 언어이며, 각각의 코드, 이름, 쓰기 방향이 함께 있습니다.

객체

응답은 디코딩된 JSON인 Map<String, Object>입니다. 패키지는 응답의 모양을 다듬는 경우에만 자체 타입을 만듭니다. 각각은 uk.openemail.result의 불변 record이며, for 루프로 행을 순회할 수 있습니다.

클래스담는 것
Pageitems, hasMore, nextCursor. 페이지로 나뉘는 모든 list에서 옵니다.
PeoplePage같은 내용에 seen이 더해진 것으로, contacts().listPeople이 반환합니다.
TempMessagesPage같은 내용에 expiresAt이 더해진 것으로, tempMail().listMessages가 반환합니다.
AddressBookPage, AddressBookunrestricted, addresses, domains이며, addresses().list(hasMore와 nextCursor 포함)와 addresses().listAll이 반환합니다.
BatchResultitems, sent, failed이며, emails().sendBatch가 반환합니다.
TemplateSendsitems, total, page, pageSize이며, templates().listSends가 반환합니다.
PagedIterable모든 페이지에 대한 순회로, 각 iterate가 반환합니다. for 루프, stream(), toList()로 사용합니다.
Body, RequestOptions호출이 받는 것: 순서를 유지하고 null 값도 받는 요청 본문과, 한 번의 호출에 대한 옵션.

패키지가 던지는 모든 예외는 OpenEmailException입니다. ApiException과 그 하위 클래스, NetworkException, WebhookSignatureException이 있습니다. 호출 자체의 실수는 아무것도 보내기 전에 IllegalArgumentException을 던집니다.

의도적으로 하지 않는 것

  • 요청 본문을 검증하지 않습니다. 규칙의 사본은 서버 스키마 하나뿐이며, 여기에 두 번째 사본을 두면 언젠가는 2년 전에 고정해 둔 버전에서 최신 서버라면 받아들일 주소를 거부하게 됩니다.
  • 응답의 모양을 바꾸는 경우는 하나뿐입니다. 컬렉션의 data 목록을 봉투에서 꺼내 위의 타입 중 하나에 담습니다. 그 밖의 응답은 API의 camelCase 키 그대로, API가 보낸 대로 돌아옵니다.
  • 비동기 메서드는 없습니다. 호출은 응답이 올 때까지 스레드를 차단하지만, 가상 스레드에서는 그 비용이 작습니다.