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
变更日志
麻省理工学院