Berapa kali mereka terus mengulangi ke Dunia ... Ada perdebatan panjang dan mungkin tak ada habisnya tentang mana yang benar dan perlu untuk memeriksa bidang email pengguna.
Ya, Anda benar-benar perlu memeriksa dengan musim reguler. Tetapi produk kami sedang online. Jadi mengapa tidak menggunakan kekuatan sejatinya?
Selain itu, sering ada situasi ketika pengguna benar-benar keliru ketika memasukkan alamat email (termasuk dalam domain). Baik, atau, di bidang email, masukkan "Habrakadabra" yang memungkinkan, yang dengan mudah terbang melalui regexp, tetapi tidak dapat dikirim melalui email, karena bahkan domain ini tidak ada di alam :)
Ngomong-ngomong, pada nuansa ini, kami benar-benar baru saja terbang: intinya adalah bahwa pada situs yang dibesarkan pada satu CMS yang agak populer, untuk beberapa alasan, kami berhenti mengirim pemberitahuan email.
Alasannya, ternyata, adalah alamat pengirim spam.
Ada beberapa alasan:
- CMS cukup populer, dan karena itu, ada banyak spammer terdaftar di dalamnya. Dan apa yang lebih menarik - dalam pengaturan yang Anda dapat (dan banyak dilakukan, by the way) - menonaktifkan verifikasi email. Dalam hal ini, Anda dapat (dan sebagian besar bot melakukannya) di sini untuk memasukkan sampah apa pun
- Teks surat tidak ditulis ulang dari yang standar.
Total: spammer secara besar-besaran naik untuk mendaftar, membuang email ke skrip, tempat kami mencoba mengirim surat. Filter spam melihat bahwa sejumlah email berasal dari email kami, dengan teks-teks yang sudah berkali-kali dilihatnya dari alamat email lain, dan pada saat yang sama sejumlah besar jatuh ke alamat email yang tidak ada.
Secara umum, alamat surat secara berkala jatuh di bawah spam.
Oleh karena itu, pengalaman, masing-masing, dapat dan harus diperdebatkan bahwa memeriksa ketersediaan domain di Internet, serta keberadaan layanan email (data MX untuk domain) di atasnya, adalah apa, secara teori, harus ada dan berfungsi dalam sistem registrasi pengguna.
Sebenarnya, esensi dari cek ini cukup sederhana: saat pendaftaran, pada tahap memvalidasi data pengguna, kami memisahkan domain dari email, dan melihat apa yang ada di MXs.
Apakah ini sulit? Tidak juga. Tetapi secara signifikan dapat mengurangi beban pada layanan pos. Dan, omong-omong, kecil kemungkinannya untuk masuk ke daftar spam (setelah semua, mengirim sejumlah besar surat ke alamat email yang tidak ada adalah salah satu tanda-tanda spam).
Dalam PHP, anehnya, ini cukup sederhana:
$email ="11@sdlkfjsdl.co.uk"; $domain = substr(strrchr($email, "@"), 1); $res = getmxrr($domain, $mx_records, $mx_weight); if (false == $res || 0 == count($mx_records) || (1 == count($mx_records) && ($mx_records[0] == null || $mx_records[0] == "0.0.0.0" ) ) ){
Saya akan menjelaskan yang agak "mengerikan" jika. Faktanya adalah bahwa dalam dokumentasi untuk fungsi
getmxrr ada komentar dengan referensi untuk perilakunya yang tidak sepenuhnya benar. Dan meskipun saya tidak dapat menemukannya di php7.1 - pemeriksaan tambahan bukan tambahan :)
Pada ruby, ini dilakukan dengan cara yang sama:
domain = invite.email.split('@').last.mb_chars.downcase.to_s.force_encoding("UTF-8")
Pada saat yang sama, saya akan mengklarifikasi bahwa pemeriksaan bidang email seperti itu tidak hanya dapat secara serius memengaruhi kualitas informasi dalam basis data proyek Anda (dan mengurangi risiko spammer mengirimkan pemberitahuan), tetapi juga menyebabkan penurunan beban kerja. Bagaimanapun, mengirim surat dari naskah adalah proses yang agak lambat dalam praktiknya.