電子メールの有効性をチェックする単純なライブラリ。チェックは次の順序で実行されます。
# 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 を定義します。デフォルトでは、テスト環境の値は{8, 8, 8, 8}
で、これは Google のプライマリ パブリック DNS サーバーです。名前解決で奇妙な失敗が発生した場合は、デフォルトの DNS サーバーを指定する必要がある場合があります。
デフォルトの 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
変更履歴
マサチューセッツ工科大学