프로젝트 소개
Mailserver Configuration Discovery는 도메인 소유자가 게시한 메일 서버 클라이언트 설정을 조회하는 Java 21+ 라이브러리로, 사용자가 계정을 추가할 때 메일 클라이언트가 설정을 발견하는 방식과 유사합니다. 도메인 또는 이메일 주소가 주어지면 IMAP, POP3, SMTP에 대한 호스트, 포트, 소켓 유형, 인증 힌트를 반환합니다.
이 라이브러리는 두 가지 발견 방법을 지원합니다. RFC 6186 및 RFC 8314에 따른 DNS SRV 레코드(`_submission`, `_submissions`, `_imap`, `_imaps`, `_pop3`, `_pop3s`)와 `https://autoconfig.<domain>/mail/config-v1.1.xml` 및 `https://<domain>/.well-known/autoconfig/mail/config-v1.1.xml`에서 가져오는 Mozilla Autoconfig XML 문서입니다. 도메인 자체가 게시한 데이터만 보고하며, 호스트 이름을 추측하거나 타사 데이터베이스를 조회하거나 발견된 메일 서버에 연결하지 않습니다.
사용법은 간단합니다. 도메인 또는 `EmailAddress`로 `MailserverConfigurationDiscovery.discover(...)`를 호출하면 됩니다. 컨텍스트 빌더를 사용하면 발견 방법, 범위(제출 또는 수신), DNS 서버, 시간 초과, 재시도, TCP DNS 조회, HTTP 시간 초과, 안전하지 않은 HTTP 폴백, 사용자 지정 실행기를 구성할 수 있습니다. 결과는 `MailserverService` 객체 집합으로 반환되며, SRV 레코드와 Mozilla Autoconfig 항목에 대한 하위 유형은 우선순위, 가중치, 사용자 이름, 비밀번호, 인증 방법, OAuth2 정보와 같은 방법별 세부 정보를 노출합니다.
이 라이브러리는 보안을 고려합니다. HTTPS가 기본적으로 사용되고, XML 파싱은 XXE에 대해 강화되었으며, 리디렉션은 제한되고, 일반 HTTP 가져오기는 선택 사항입니다. SLF4J를 통해 로깅하며 조회가 무시될 때 DEBUG 수준의 설명을 제공합니다. 제한 사항으로는 발견된 서버 검증 없음, 결과 순서 미보장, 실패 시 부분 결과, Mozilla ISPDB, MX 기반 폴백, Microsoft Autodiscover v2, DNS TXT `mailconf=` 제안에 대한 지원 없음이 있습니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.