이메일의 유효성을 확인하는 간단한 라이브러리입니다. 점검은 다음 순서로 수행됩니다.
# mix.exs
def deps do
[
# other dependencies...
{ :email_checker , "~> 0.2.4" }
# other dependencies...
]
end
# config/config.exs -- default
config :email_checker ,
default_dns: :system ,
also_dns: [ ] ,
validations: [ EmailChecker.Check.Format , EmailChecker.Check.MX ] ,
smtp_retries: 2 ,
timeout_milliseconds: :infinity
테스트 환경에서는 MX가 존재하는지 여부를 확인하기 위해 DNS 레코드를 수동으로 로드해야 합니다. 라이브러리를 로드할 때 Erlang에는 아직 DNS 레코드 목록이 없습니다. 따라서 문제를 방지하기 위해 기본 DNS를 정의합니다. 기본적으로 테스트 환경의 값은 Google의 기본 공개 DNS 서버인 {8, 8, 8, 8}
입니다. 이름 확인 시 이상하게 오류가 발생하는 경우 기본 DNS 서버를 지정해야 할 수도 있습니다.
기본 서버 이후 수동으로 추가 DNS 서버를 로드해야 하는 경우 also_dns
설정에서 추가 DNS 서버 IP 목록을 설정할 수 있습니다.
IP 주소는 쉼표로 구분된 튜플로 표시됩니다.
기본 유효성 검사 설정은 대부분의 경우에 적합합니다. 자체 테스트에서 가짜이지만 유효해 보이는 이메일 주소를 사용하는 경우 유효성 검사를 [Format]
으로 설정하면 해당 구성에서 MX 및 SMTP 테스트가 사용되지 않습니다.
SMTP 유효성 검사 전략은 기본적으로 2번의 재시도를 시도합니다.
MX 및 SMTP 유효성 검사 전략은 각각 고유한 방식으로 기본 Erlang 라이브러리 호출과 동일한 네트워크 연결에 대한 기본 시간 제한을 사용합니다. 이 값은 :infinity
이며 호출에 소요되는 시간만큼 호출이 수행된다는 점에 유의하는 것이 중요합니다. 밀리초 단위로 적절한 시간 제한을 설정하고 싶을 것입니다. 다음 사항에 유의하세요.
# config/config.exs -- example personalized configuration
config :email_checker ,
default_dns: { 8 , 8 , 8 , 8 } ,
smtp_retries: 1 ,
timeout_milliseconds: 6000
EmailChecker . valid? ( "[email protected]" )
#=> true
EmailChecker . valid? ( "[email protected]" )
#=> false
변경 로그
MIT