Cuántas veces han estado repitiendo en el mundo ... Existe un debate largo y probablemente interminable sobre qué regularidad es correcta y es necesario verificar el campo de correo electrónico del usuario.
Sí, realmente necesitas consultar con la temporada regular. Pero nuestros productos están en línea. Entonces, ¿por qué no usar su verdadero poder?
Además, a menudo hay situaciones en las que los usuarios se equivocan realmente al ingresar una dirección de correo electrónico (incluso en un dominio). Bueno, o, en el campo de correo electrónico, ingrese cualquier "Habrakadabra" posible, que vuela fácilmente a través de regexp, pero no puede enviarse por correo, porque incluso este dominio no existe en la naturaleza :)
Por cierto, en este matiz, literalmente, simplemente volamos: la conclusión es que en el sitio surgió en un CMS bastante popular, por alguna razón, dejamos de enviar notificaciones por correo electrónico.
Resultó que la razón era la dirección del spammer.
Hubo varias razones:
- El CMS es bastante popular y, por lo tanto, hay muchos spammers registrados. Y lo que es más interesante, en la configuración, puede (y muchos lo hacen, por cierto), deshabilitar la verificación de correo electrónico. En este caso, puede (y la mayoría de los bots lo hacen) aquí para ingresar cualquier basura
- Los textos de las cartas no fueron reescritos de los estándares.
Total: los spammers treparon masivamente para registrarse, arrojaron correos electrónicos izquierdos al script, donde intentamos enviar cartas. El filtro de spam vio que una cantidad de correos electrónicos provenían de nuestro correo electrónico, con textos que ya había visto muchas veces desde otras direcciones de correo electrónico, y al mismo tiempo, un número considerable de ellos cayeron en direcciones de correo electrónico inexistentes.
En general, la dirección de correo cae periódicamente bajo spam.
Por lo tanto, la experiencia, respectivamente, puede y debe argumentarse que verificar la disponibilidad de un dominio en Internet, así como la presencia de un servicio de correo (registros MX para un dominio), es lo que, en teoría, debería existir y funcionar en los sistemas de registro de usuarios.
En realidad, la esencia de la verificación es bastante simple: durante el registro, en la etapa de validación de los datos del usuario, separamos el dominio del correo electrónico y vemos qué hay en los MX.
¿Es dificil? En realidad no Pero puede reducir significativamente la carga en los servicios postales. Y, por cierto, es mucho menos probable que ingrese a las listas de spam (después de todo, enviar una gran cantidad de cartas a direcciones de correo inexistentes es uno de los signos de spam).
En PHP, por extraño que parezca, esto es bastante simple:
$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" ) ) ){
Explicaré lo bastante "monstruoso" si. El hecho es que en la documentación de la función
getmxrr había comentarios con referencias a su comportamiento que no eran del todo correctos. Y aunque no pude encontrarlos en php7.1, un cheque adicional no es adicional :)
En ruby, esto se hace de manera similar:
domain = invite.email.split('@').last.mb_chars.downcase.to_s.force_encoding("UTF-8")
Al mismo tiempo, aclararé que tal verificación del campo del correo electrónico no solo puede afectar seriamente la calidad de la información en la base de datos de su proyecto (y reducir el riesgo de que los spammers envíen notificaciones), sino que también puede reducir la carga de trabajo. Después de todo, enviar cartas desde un script es un proceso bastante lento en la práctica.