Ho un client con 5000 e-mail da una vecchia lista che ha che vuole promuovere i suoi servizi a. Vuole sapere quali e-mail sulla lista sono ancora valide. Voglio controllarli per lui - senza inviare 5K email in modo casuale e quindi essere elencato come spammer o qualcosa del genere. Idee?Come posso verificare se un indirizzo e-mail è valido senza inviare nulla ad esso?
risposta
bucabay's la risposta è la via da seguire. Ciò che una libreria del genere essenzialmente fa è controllare il record DNS esistente per i server (di posta) in domini specifici (A, MX o AAAA). Successivamente, esegue la cosiddetta verifica della richiamata. Ecco dove ti connetti al server di posta, dillo che vuoi inviare ad un particolare indirizzo email e vedere se dicono OK.
Per la verifica della richiamata, è necessario notare che i server greylisting dicono OK a tutto, quindi non è possibile garantire il 100% senza inviare effettivamente le e-mail. Ecco un codice che ho usato quando l'ho fatto manualmente. È una patch sul parser dell'indirizzo email da here.
#
# Email callback verification
# Based on http://uk2.php.net/manual/en/function.getmxrr.php
#
if (strlen($bits['domain-literal'])){
$records = array($bits['domain-literal']);
}elseif (!getmxrr($bits['domain'], $mx_records, $mx_weight)){
$records = array($bits['domain']);
}else{
$mxs = array();
for ($i = 0; $i < count($mx_records); $i++){
$mxs[$mx_records[$i]] = $mx_weight[$i];
}
asort($mxs);
$records = array_keys($mxs);
}
$user_okay = false;
for ($j = 0; $j < count($records) && !$user_okay; $j++){
$fp = @fsockopen($records[$j], 25, $errno, $errstr, 2);
if($fp){
$ms_resp = "";
$ms_resp .= send_command($fp, "HELO ******.com");
$ms_resp .= send_command($fp, "MAIL FROM:<>");
$rcpt_text = send_command($fp, "RCPT TO:<" . $email . ">");
$ms_resp .= $rcpt_text;
$ms_code = intval(substr($rcpt_text, 0, 3));
if ($ms_code == 250 || $ms_code == 451){ // Accept all user account on greylisting server
$user_okay = true;
}
$ms_resp .= send_command($fp, "QUIT");
fclose($fp);
}
}
return $user_okay ? 1 : 0;
Attenzione per la verifica della richiamata/verifica dell'indirizzo del mittente. C'è un dibattito sulla sua utilità (vedi i riferimenti http://en.wikipedia.org/wiki/Callback_verification per esempio) e alcuni RBL ti includeranno _just_ per le verifiche dell'indirizzo del mittente. – sync
Questo sembra estremamente utile KTC - c'è un modo in cui posso usarlo con il codice di riferimento nella risposta di Bucabay? – Matt
Dovrai inviarli via email almeno una volta.
- Creare un nuovo elenco di e-mail. Invia alla vecchia lista un'e-mail con un link su cui devono fare clic per continuare a ricevere messaggi (ri-iscriviti).
- Invia loro tutte le email e raccogli tutte le risposte rimbalzate su un vero account di posta elettronica, quindi elimina quelle rimbalzate dalla tua lista principale.
- Invia tutte le e-mail HTML e una delle immagini è ospitata in remoto e richiede un ID univoco per richiederlo impostato su ciascuna e-mail. Quando il tuo server web restituisce quell'immagine al loro cliente, puoi quindi considerare quell'email come attiva. Questo è chiamato web bug e funzionerà solo se la persona carica automaticamente le immagini remote nel proprio client.
La convalida dell'immagine non funziona sempre, poiché la maggior parte delle organizzazioni (che conosco) sopprime le immagini per impostazione predefinita. La tua seconda opzione va bene ... è un modo carino per convincere gli utenti ad aderire ad ulteriori corrispondenza. –
Sì, potrebbe essere solo uno dei vari metodi che l'OP potrebbe voler impiegare per determinare le email stantie. Ho spostato l'opzione da # 2 a # 1 :) –
Penso che sia necessario inviare le e-mail per scoprirlo. Inoltre, questo è esattamente ciò che uno spammer è, quindi la ragione per essere inserito negli elenchi di spammer. L'invio a raffiche ti aiuterà a nascondere questo fatto però.
All'OP viene richiesto un modo senza inviare e-mail. Questo è molto utile per verificare l'esistenza di un'e-mail fornita dal visitatore – SCC
È possibile convalidare l'e-mail tramite SMTP senza inviare un'e-mail effettiva.
http://code.google.com/p/php-smtp-email-validation/
Si potrebbe anche inviare e-mail, e verificare la presenza di rimbalzi.
https://github.com/kamilc/email_verifier è un rubygem che controllerà che esiste il record MX e che il server SMTP dice l'indirizzo ha una cassetta postale valida.
È possibile utilizzare un servizio a pagamento come Kickbox anche per questo.
È possibile considerare il servizio MailboxValidator http://www.mailboxvalidator.com/ che dovrebbe essere adeguato alle proprie esigenze. Puoi ottenere un piano di massa in cui puoi caricare un file CSV contenente la tua mailing list o ottenere il piano API se hai bisogno di integrazioni programmatiche.
- 1. Posso verificare se esiste un indirizzo email usando .net?
- 2. Come verificare se il testo di UITextField è un indirizzo email valido?
- 3. Come verificare se un indirizzo e-mail è falso?
- 4. Come verificare se un puntatore è valido?
- 5. Controlla se una stringa è un indirizzo email in PHP
- 6. java: come posso verificare che un indirizzo e-mail sia valido senza inviare un'e-mail di conferma?
- 7. Come verificare se un riferimento alla procedura è nulla?
- 8. Come verificare se esiste un indirizzo e-mail?
- 9. AngularJS - Prevenire presentazione di un modulo se esso è valido
- 10. Controlla se una stringa contiene un indirizzo email?
- 11. come verificare se un determinato indirizzo email esiste effettivamente in C#?
- 12. come verificare se un file jar è valido?
- 13. Come inviare e-mail utilizzando Amazon SES senza verificare 'da' indirizzo e-mail
- 14. Come verificare se un file è un file immagine valido?
- 15. È "a @ bbb..com" un indirizzo email valido ?, Secondo la classe MailAddress è
- 16. indirizzo email predefinito accesso
- 17. Come verificare se una stringa è un URL HTTP valido?
- 18. Trova avatar Google+ per un determinato indirizzo email senza OAuth
- 19. Come posso verificare se un socket è ancora aperto?
- 20. Come posso impedire a Outlook di eseguire il rendering di un indirizzo email come mailto: link?
- 21. Come verificare se un indirizzo è un indirizzo commerciale o residenziale
- 22. Come verificare rapidamente se l'oggetto NSString è un URL valido?
- 23. Come verificare se una stringa è un XML valido senza visualizzazione di un avviso in PHP
- 24. indirizzo email noreply.
- 25. Può esserci un apostrofo in un indirizzo email?
- 26. Come posso verificare se un CGPoint è stato inizializzato?
- 27. 0.0.0.0 è un indirizzo IP valido?
- 28. Verificare se la variabile è un elemento nodo valido
- 29. Come posso verificare se un valore è un numero?
- 30. Controllare se una variabile POST [] è un indirizzo IP?
http://stackoverflow.com/search?q=validate+email –
@Brendan Long Sembra che siano già email formattate correttamente e che stia cercando di verificare se l'account esiste davvero. –
Oh. Non importa allora. –