Utiliser les enregistrements MX pour valider les adresses e-mail

Scénario:
J'ai un formulaire de contact sur mon application web, elle obtient beaucoup de spam.
Je suis de la validation du format des adresses e-mail vaguement c'est à dire ^.+@.+\..+$
Je suis à l'aide d'un spam filtering service (defensio) mais le spam scores retourné se chevauchent avec des messages valides. À un seuil de 0,4 certains messages de spam à travers et quelques questions sont, à tort, jeté dans un journal et une erreur s'affiche.

Tous les messages de spam utilisent de fausses adresses e-mail par exemple [email protected]

Dédié PHP5 serveur Linux en NOUS, mysql, l'exploitation forestière spam, seul, l'envoi de courriels non les messages de spam (non stockés).

Proposition:
Utilisation de php checkdnsrr(preg_replace(/^.+?@/, '', $_POST['email']), 'MX') de vérifier le courrier électronique résout à une adresse valide, log fichier, puis rediriger avec un message d'erreur pour des messages qui ne se résout pas, passez à le service de filtrage du spam comme avant pour les adresses qui ne résolvent en fonction de checkdnsrr().

J'ai lu (et je suis sceptique à propos de ce moi-même) que vous ne devriez jamais laisser ce type de validation à distance des recherches, mais pourquoi?

À part les problèmes de connectivité, où j'aurai plus de problèmes que d'un formulaire de contact, de toute façon, est checkdnsrr d'aller à la rencontre de faux positifs/négatifs?
Y aurait-il certains types d'adresse qui a coutume de les résoudre? gov adresses? ip, adresses e-mail?
Ai-je besoin d'échapper le nom d'hôte que je passe à checkdnsrr()?

Solution:
Une combinaison de tous les trois réponses (souhaite que je pourrais accepter plus d'un comme un composé de réponse).

Je suis en utilisant:

$email_domain = preg_replace('/^.+?@/', '', $email).'.';
if(!checkdnsrr($email_domain, 'MX') && !checkdnsrr($email_domain, 'A')){
   //validation error
}

Tout le spam qui est enregistré et tourné.
En vue de la mise à niveau vers une file d'attente de travail à une date ultérieure.

Certaines observations ont été faites sur le point de demander au serveur de messagerie de l'utilisateur de vérifier, j'ai senti que ce serait trop de trafic et pourrait obtenir mon serveur interdits ou des ennuis, d'une certaine façon, et ce n'est qu'à découper la plupart des e-mails qui ont été renvoyés en raison valide les adresses de serveur.

http://en.wikipedia.org/wiki/Fqdn
et

RFC2821
The lookup first attempts to locate an MX record associated with the name.
If a CNAME record is found instead, the resulting name is processed as if 
it were the initial name.
If no MX records are found, but an A RR is found, the A RR is treated as
if it was associated with an implicit MX RR, with a preference of 0,
pointing to that host.  If one or more MX RRs are found for a given
name, SMTP systems MUST NOT utilize any A RRs associated with that
name unless they are located using the MX RRs; the "implicit MX" rule
above applies only if there are no MX records present.  If MX records
are present, but none of them are usable, this situation MUST be
reported as an error.

Un grand merci à tous (surtout ZoogieZork pour l'enregistrement de secours pointe)

source d'informationauteur Question Mark | 2009-12-29