Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di bets
    Registrato dal
    Apr 2009
    Messaggi
    19

    inviare una e-mail con javax.mail

    Ciao a tutti
    come da oggetto vorrei inviare una e-mail con le api javax.mail e jaf, leggendo la documentazione e il piccolo tutorial su html sono arrivato a questo punto:

    Codice PHP:
        public boolean sendRegistrazione (String emailString codiceAttivazione){
                
    // Creazione di una mail session
                
    Properties props = new Properties();
                
    props.put("mail.smtp.user""email@gmail.com");
                
    props.put("mail.smtp.host""smtp.gmail.com");
                
    props.put("mail.smtp.port""465");
                
    props.put("mail.smtp.starttls.enable","true");
                
    props.put("mail.smtp.auth""true");
                
    props.put("mail.smtp.socketFactory.port""465");
                
    props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
                
    props.put("mail.smtp.socketFactory.fallback""false");

                
    // Creazione del messaggio da inviare
                
    try {
                
    Session session Session.getInstance(props);

                
    MimeMessage message = new MimeMessage(session);

                
    String oggetto "Conferma reigstrazione dominio.net";
                
    String testoEmail "Conferma la registrazione per dominio.net.      
    [url]http://www.dominio.net/?[/url]"
    +codiceAttivazione;
                
    message.setSubject(oggetto);
                
    message.setText(testoEmail);

                
    // Aggiunta degli indirizzi del mittente e del destinatario
                
    String mitt "admin@dominio.net";
                
    InternetAddress fromAddress = new InternetAddress(mitt);
                
    InternetAddress toAddress = new InternetAddress(email);
                
    message.setFrom(fromAddress);
                
    message.setRecipient(Message.RecipientType.TOtoAddress);

                
    // Invio del messaggio
                
    Transport.send(message);
                
                    return 
    true;
                }catch (
    Exception e) {
                    return 
    false;
                }
        } 
    Ovviamente non funziona...sicuramente è un problema di autenticazione o qualche conflitto con gmail. C'è qualcuno che sa come risolvere?

    grazie

  2. #2
    logga su file oppure stampa a schermo nel catch

    codice:
     }catch (Exception e) {
                    System.out.println(e);
                    return false;
                }

    ti consiglio se possibile, di usare la libreria Commons Email di Apache, che semplifica all'estremo l'utilizzo:

    codice:
    SimpleEmail email = new SimpleEmail();
      email.setHostName("mail.myserver.com");
      email.addTo("jdoe@somewhere.org", "John Doe");
      email.setFrom("me@apache.org", "Me");
      email.setSubject("Test message");
      email.setMsg("This is a simple test of commons-email");
      email.send();

  3. #3
    Utente di HTML.it L'avatar di bets
    Registrato dal
    Apr 2009
    Messaggi
    19
    Ciao noodles25
    grazie per il consiglio, però voglio farlo funzionare con javamail non è possibile che non c'è verso di farlo andare.

    aggiorno il codice:
    codice:
    import javax.mail.*;
    import javax.mail.internet.*;
    
    import com.sun.mail.smtp.SMTPSSLTransport;
    
    import java.util.Properties;
    
    
    public class SimpleSSLMail {
    
        private static final String SMTP_HOST_NAME = "smtp.gmail.com";
        private static final int SMTP_HOST_PORT = 465;
        private static final String SMTP_AUTH_USER = "user@gmail.com";
        private static final String SMTP_AUTH_PWD  = "provajavax";
    
        public static void main(String[] args) throws Exception{
           new SimpleSSLMail().test();
        }
    
        public void test() throws Exception{
            Properties props = new Properties();
    
            props.put("mail.transport.protocol", "smtps");
            props.put("mail.smtps.host", SMTP_HOST_NAME);
            props.put("mail.smtps.auth", "true");
            // props.put("mail.smtps.quitwait", "false");
            try {
            Session mailSession = Session.getDefaultInstance(props);
            mailSession.setDebug(true);
    
            MimeMessage message = new MimeMessage(mailSession);
            message.setSubject("Testing SMTP-SSL");
            message.setContent("This is a test", "text/plain");
    
            message.addRecipient(Message.RecipientType.TO,
                 new InternetAddress("bietto.s@hotmail.it"));
            SMTPSSLTransport transport = (SMTPSSLTransport)mailSession.getTransport("smtps");
    
            transport.connect
              (SMTP_HOST_NAME, SMTP_HOST_PORT, SMTP_AUTH_USER, SMTP_AUTH_PWD);
    
            transport.sendMessage(message,
                message.getRecipients(Message.RecipientType.TO));
            transport.close();
            }catch (Exception e) {
    			System.out.println(e);
    		}
        }
    }

    Errori:
    codice:
    DEBUG: setDebug: JavaMail version 1.4.2
    DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc]
    DEBUG SMTP: useEhlo true, useAuth true
    DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 465, isSSL true
    javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
    nested exception is:
    java.net.ConnectException: Connection timed out: connect
    C'è qualcuno che è riuscito a far funzionare javamail con gmail?

  4. #4
    Utente di HTML.it L'avatar di bets
    Registrato dal
    Apr 2009
    Messaggi
    19
    PROBLEMA RISOLTO!

    se dovesse servire a qualcuno incollo il codice:

    codice:
    import javax.mail.*;
    import javax.mail.internet.*;
    
    import com.sun.mail.smtp.SMTPSSLTransport;
    
    import java.util.Properties;
    
    
    public class SimpleSSLMail {
    
        private static final String SMTP_HOST_NAME = "smtp.gmail.com";
        private static final int SMTP_HOST_PORT = 465;
        private static final String SMTP_AUTH_USER = "user@gmail.com";
        private static final String SMTP_AUTH_PWD  = "pass";
    
        public static void main(String[] args) throws Exception{
           new SimpleSSLMail().test();
        }
    
        public void test() throws Exception{
            Properties props = new Properties();
    
            props.put("mail.transport.protocol", "smtps");
            props.put("mail.smtps.host", SMTP_HOST_NAME);
            props.put("mail.smtps.auth", "true");
            props.put("mail.smtp.starttls.enable","true");
            // props.put("mail.smtps.quitwait", "false");
            try {
            Session mailSession = Session.getDefaultInstance(props);
            mailSession.setDebug(true);
    
            MimeMessage message = new MimeMessage(mailSession);
            message.setSubject("Testing SMTP-SSL");
            message.setContent("This is a test", "text/plain");
    
            message.addRecipient(Message.RecipientType.TO,
                 new InternetAddress("bietto.s@hotmail.it"));
            SMTPSSLTransport transport = (SMTPSSLTransport)mailSession.getTransport("smtps");
    
            transport.connect
              (SMTP_HOST_NAME, SMTP_HOST_PORT, SMTP_AUTH_USER, SMTP_AUTH_PWD);
    
            transport.sendMessage(message,
                message.getRecipients(Message.RecipientType.TO));
            transport.close();
            }catch (Exception e) {
    			System.out.println(e);
    		}
        }
    }

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.