Perpustakaan sederhana memeriksa validitas email. Pemeriksaan dilakukan dengan urutan sebagai berikut:
# 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
Di lingkungan pengujian, kita perlu memuat data DNS secara manual untuk memvalidasi apakah MX ada atau tidak. Saat kami memuat perpustakaan, Erlang belum memiliki daftar data DNS-nya. Jadi untuk menghindari masalah apa pun, kami menetapkan DNS default. Secara default, nilai lingkungan pengujian adalah : {8, 8, 8, 8}
, yang merupakan server DNS publik utama Google. Jika Anda mengalami kegagalan aneh dalam resolusi nama, Anda mungkin harus menentukan server DNS default.
Jika Anda perlu memuat lebih banyak server DNS secara manual setelah yang default, Anda dapat mengatur daftar IP server DNS lainnya di pengaturan also_dns
.
Harap dicatat bahwa alamat IP direpresentasikan sebagai tupel yang dipisahkan dengan koma.
Pengaturan validasi default harus sesuai untuk sebagian besar kasus. Jika Anda menggunakan alamat email palsu namun tampak valid dalam pengujian Anda sendiri, Anda mungkin perlu menyetel validasi ke [Format]
saja, dan pengujian MX dan SMTP tidak akan digunakan dalam konfigurasi tersebut.
Strategi validasi SMTP akan mencoba 2 kali percobaan ulang, secara default.
Strategi validasi MX dan SMTP, masing-masing dengan caranya sendiri, menggunakan batas waktu default yang sama untuk koneksi internet seperti panggilan pustaka Erlang yang mendasarinya. Penting untuk dicatat bahwa nilai ini adalah :infinity
, dan panggilan akan berlangsung selama panggilan berlangsung. Anda mungkin ingin menyetel batas waktu yang masuk akal dalam milidetik. Harap dicatat bahwa:
# 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
PERUBAHANLOG
MIT