email_checker
v0.2.4
檢查電子郵件有效性的簡單資料庫。檢查按以下順序進行:
# 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
在測試環境中,我們需要手動載入DNS記錄來驗證MX是否存在。當我們載入函式庫時,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
變更日誌
麻省理工學院