Einfache Bibliothek, die die Gültigkeit einer E-Mail überprüft. Die Prüfungen werden in der folgenden Reihenfolge durchgeführt:
# 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
In der Testumgebung müssen wir DNS-Einträge manuell laden, um zu überprüfen, ob ein MX vorhanden ist oder nicht. Wenn wir die Bibliothek laden, verfügt Erlang noch nicht über seine DNS-Eintragsliste. Um Probleme zu vermeiden, definieren wir einen Standard-DNS. Standardmäßig lautet der Wert für die Testumgebung: {8, 8, 8, 8}
, der primäre öffentliche DNS-Server von Google. Wenn Sie feststellen, dass bei der Namensauflösung seltsame Fehler auftreten, müssen Sie möglicherweise einen Standard-DNS-Server angeben.
Für den Fall, dass Sie nach dem Standard-DNS-Server manuell weitere DNS-Server laden müssen, können Sie in der Einstellung also_dns
eine Liste weiterer DNS-Server-IPs festlegen.
Bitte beachten Sie, dass die IP-Adresse als durch Kommas getrenntes Tupel dargestellt wird.
Die Standardvalidierungseinstellung sollte für die meisten Fälle geeignet sein. Wenn Sie in Ihren eigenen Tests gefälschte, aber gültig aussehende E-Mail-Adressen verwenden, müssen Sie die Validierungen möglicherweise nur auf [Format]
festlegen. MX- und SMTP-Tests werden dann in dieser Konfiguration nicht verwendet.
Die SMTP-Validierungsstrategie versucht standardmäßig zwei Wiederholungsversuche.
Die MX- und SMTP-Validierungsstrategien verwenden, jeweils auf ihre eigene Weise, dasselbe Standard-Timeout für Netzverbindungen wie die zugrunde liegenden Erlang-Bibliotheksaufrufe. Es ist wichtig zu beachten, dass dieser Wert :infinity
ist und der Anruf genauso lange dauert wie der Anruf. Sie möchten wahrscheinlich ein sinnvolles Zeitlimit in Millisekunden festlegen. Bitte beachten Sie Folgendes:
# 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
CHANGELOG
MIT