Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    42

    Verificare esistenza indirizzo mail

    Vorrei realizzare un software in java che dati degli indirizzi e-mail, verifichi se questi indirizzi sono corretti. Tuttavia non devono essere inviate mail agli indirizzi controllati. E' quindi possibile controllare gli indirizzi senza dover inviare un messaggio per vedere se vengono lanciate eccezioni? Attualmente sto provando a vedere se le librerie javamail svolgono questa funzione, ma da quello che vedo mi pare di capire che il messaggio devo inviarlo...

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Al massimo puoi verificare che un'indirizzo email sia valido (basta usare una regex), ma dato un indirizzo X non penso proprio ci sia un modo per sapere se esiste realmente senza mandare un'email e aspettare l'eventuale "delivery failure"
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    42
    Leggevo in alcuni siti che si dovrebbe contattare il dominio di cui fa parte la mail e ricevere da esso un messaggio...

  4. #4
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Sì ci si può fare così. Devi contattare il server SMTP del dominio e provare a verificare che l'utente esista. Non tutti ma alcuni server ti diranno se la mailbox sia valida o no.

    Zio G sicuramente ti saprà dire di più

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    La cosa non è fattibile al 100% (perchè nessuno obbliga i server a dirti se il dato indirizzo e-mail è presente nelle sue liste oppure no), però ci si può "ingegnare".

    Un metodo che viene in mente a me è il seguente:

    1) Ottenere il nome/indirizzo del server SMTP del destinatario (attraverso un lookup sui DNS per i record MX del dominio in questione)

    2) Contattare il server SMTP del destinatario e far finta di voler inviare una mail

    3) Iniziare, quindi, il protocollo SMTP:

    EHLO <tuo_nome>
    MAIL FROM:<tuo_indirizzo_email>
    RCPT TO:<indirizzo_da_verificare>

    4) Se si ottiene una risposta negativa (codici 450, 551 o 553 quelli più "papabili", ma ce ne possono essere degli altri, verifica qui: http://www.greenend.org.uk/rjk/tech/smtpreplies.html) quasi certamente la mail non è corretta. Dico "quasi" perchè potrebbe essere un problema momentaneo del server di posta del destinatario o qualche meccanismo di filtro anti-spam del server stesso.

    5) Abortire la richiesta di invio mail, inviando semplicemente un QUIT

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    42
    Purtroppo non conosco per nulla le librerie per la gestione delle mail in java. Potreste indicarmi del codice per svolgere queste funzioni, o almeno indicarmi le classi da usare?

  7. #7
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Originariamente inviato da LeleFT
    La cosa non è fattibile al 100% (perchè nessuno obbliga i server a dirti se il dato indirizzo e-mail è presente nelle sue liste oppure no), però ci si può "ingegnare".
    Perciò ho scritto alcuni server

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Originariamente inviato da Reicon
    Purtroppo non conosco per nulla le librerie per la gestione delle mail in java. Potreste indicarmi del codice per svolgere queste funzioni, o almeno indicarmi le classi da usare?
    Quello va fatto senza usare librerie per la gestione delle mail... il tuo scopo non è inviare una mail, ma "far finta". Quello che ti serve è la normale comunicazione via Socket.

    Quindi:

    1) La classe Socket
    2) Le classi di lettura/scrittura su stream (InputStream, OutputStream, InputStreamReader, BufferedReader, ecc).
    3) Conoscere le basi del protocollo SMTP.

    Questo solo per la comunicazione con il server SMTP. Per quanto riguarda il lookup dei DNS puoi sfruttare la libreria dnsjava (io non l'ho mai usata, ma vedo in giro che la usano).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Originariamente inviato da LeleFT
    Quello va fatto senza usare librerie per la gestione delle mail... il tuo scopo non è inviare una mail, ma "far finta".
    Se la libreria te lo permetta si potrebbe fare anche senza imparare il protocollo semplice

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Originariamente inviato da neroux
    Se la libreria te lo permetta si potrebbe fare anche senza imparare il protocollo semplice
    Sì, è vero... bisogna, prima, trovare una libreria del genere. Poi sorgerebbe il dubbio sull'utilità di avere una libreria per l'invio delle mail che non si arrangi a seguire il protocollo SMTP chiedendoti, ad ogni pié sospinto, conferma se proseguire o meno...

    Io ho messo le mani avanti perchè se l'utente cerca di usare, ad esempio, JavaMail per fare una roba del genere, è più il tempo che perde del beneficio che ne può avere. Anche perchè, per inviare quei 3 (di numero) comandi ad un server SMTP si fa davvero prima a farlo a mano.

    Che poi, tra le pillole di questo forum, c'è ancora la mia vecchia pillola con tutto il codice per farlo a mano...

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.