Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: invio email

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396

    invio email

    Ciao a tutti, ho implementato queste poche righe di codice:
    codice:
    public class MailUtility
    {
      public void sendMail ()
          throws MessagingException
      {
        // Creazione di una mail session
        Properties props = new Properties();
        props.put("mail.libero.it", "smtp.libero.it");
        Session session = Session.getDefaultInstance(props);
    
        // Creazione del messaggio da inviare
        MimeMessage message = new MimeMessage(session);
        message.setSubject("prova");
        message.setText("testo di prova");
    
        // Aggiunta degli indirizzi del mittente e del destinatario
        InternetAddress fromAddress = new InternetAddress("danielee@totale.it");
        InternetAddress toAddress = new InternetAddress("danielee@hotmail.it");
        message.setFrom(fromAddress);
        message.setRecipient(Message.RecipientType.TO, toAddress);
    
        // Invio del messaggio
        Transport.send(message);
      }
    }
    Purtroppo non mi invia le mail dandomi questi errori:
    codice:
    javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;
      nested exception is:
            java.net.ConnectException: Connection refused
            at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1706)
            at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:525)
            at javax.mail.Service.connect(Service.java:291)
            at javax.mail.Service.connect(Service.java:172)
            at javax.mail.Service.connect(Service.java:121)
            at javax.mail.Transport.send0(Transport.java:190)
            at javax.mail.Transport.send(Transport.java:120)
            at mail.NewJFrame$MailUtility.sendMail(NewJFrame.java:78)
    credo che gli errori siano dovuti al fatto che faccio girare l'applicazione sul mio computer e non su di un server web. Come faccio a fargli inviare le mail senza essere connesso ad un sito?

    Non ho capito bene neanche cosa devo mettere in questi campi: props.put("mail.libero.it", "smtp.libero.it");
    non credo di averli impostati correttamente (anche se il server smtp di libero è mail.libero.it)

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    309
    Ciao
    il tuo errore mi sa è qui:
    props.put("mail.libero.it", "smtp.libero.it");

    Properties props = new Properties();
    props.put("mail.smtp.host", "smtp.libero.it");
    props.put("mail.smtp.auth", "true");

    dimenticavo:
    Authenticator auth = new MyAuthenticator();
    Session session = Session.getDefaultInstance(props,auth);
    io mi creo la classe Authenticator per passare utente e password:
    [code]
    import javax.mail.Authenticator;
    import javax.mail.PasswordAuthentication;

    public class MyAuthenticator extends Authenticator{

    private PasswordAuthentication passwordAutentication = new PasswordAuthentication("utente", "password");

    public MyAuthenticator(){

    }

    @Override
    public PasswordAuthentication getPasswordAuthentication() {
    return passwordAutentication;
    }
    }
    [/code ]
    tomcat 6.016
    netbeans 6.1

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396
    Grazie della risposta.
    Non sapevo ci servisse anche nome utente e password per inviare email.
    Quando lo invio da un server scrivendo la procedura in php non me le chiede e posso decidere io il nome del destinatario. In Java non posso farlo???

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    309
    penso dipende dal server.
    io personalmente sia per la pec che per la posta normale (gestita da exchange o la mia di libero) ho sempre inserito utente e password, in quanto i server richiedono l'autenticazione.
    tomcat 6.016
    netbeans 6.1

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396
    Adesso mi da quest'errore:
    codice:
    com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first
    
            at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1829)
            at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1368)
            at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:886)
            at javax.mail.Transport.send0(Transport.java:191)
            at javax.mail.Transport.send(Transport.java:120)
            at mail.NewJFrame$MailUtility.sendMail(NewJFrame.java:83)
            at mail.NewJFrame.<init>(NewJFrame.java:20)
            at mail.NewJFrame$1.run(NewJFrame.java:53)

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396
    Guarda, proprio in una delle guide di questo sito ti fa vedere come mandare mail senza dover inserire password o user. Solo che in questo esempio usa anche del codice html.
    http://java.html.it/articoli/leggi/2...mail-con-java/

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396
    Questo è tutto il mio codice:
    codice:
    public class MailUtility
    {
      public void sendMail ()
          throws MessagingException
      {
        // Creazione di una mail session
        Properties props = new Properties();
        props.put("mail.smtp.host", "smtp.libero.it");
        props.put("mail.smtp.auth", "true");
        Authenticator auth = new MyAuthenticator();
    
        Session session = Session.getDefaultInstance(props, auth);
    
        // Creazione del messaggio da inviare
        MimeMessage message = new MimeMessage(session);
        message.setSubject("prova");
        message.setText("testo di prova");
    
        // Aggiunta degli indirizzi del mittente e del destinatario
        InternetAddress fromAddress = new InternetAddress("marini_americo@libero.it");
        InternetAddress toAddress = new InternetAddress("danielee@hotmail.it");
        message.setFrom(fromAddress);
        message.setRecipient(Message.RecipientType.TO, toAddress);
    
        // Invio del messaggio
        Transport.send(message);
      }
    }
        // Variables declaration - do not modify                     
        // End of variables declaration                   
    
    public class MyAuthenticator extends Authenticator{
    
    private PasswordAuthentication passwordAutentication = new PasswordAuthentication("marini_americo@libero.it", "********");
    
    public MyAuthenticator(){
    
    }
    
    @Override
    public PasswordAuthentication getPasswordAuthentication() {
    return passwordAutentication;
    }
    }
    Però mi da quest'errore:
    codice:
    com.sun.mail.smtp.SMTPSendFailedException: Access denied
    
            at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1829)
            at com.sun.mail.smtp.SMTPTransport.finishData(SMTPTransport.java:1634)
            at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:889)
            at javax.mail.Transport.send0(Transport.java:191)
            at javax.mail.Transport.send(Transport.java:120)
            at mail.NewJFrame$MailUtility.sendMail(NewJFrame.java:82)
            at mail.NewJFrame.<init>(NewJFrame.java:19)
            at mail.NewJFrame$1.run(NewJFrame.java:52)

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    309
    non sono riuscito a rispondere prima che ho uno di quei problemi da far venire il mal di testa...
    potresti provare utente senza "@..." oppure controllare la password.
    non so se può servire a escludere la proprietà auth
    Se riesco domani afccio una prova con libero che anche io ho un account
    ti fo sapere al più presto
    tomcat 6.016
    netbeans 6.1

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396
    ok grazie.
    Ho provato anche senza la @... ma nn cambia. I dati sono corretti perchè ho provato a fare l'accesso da internet e funzionano.
    Però nell'applicazione java non gli vanno bene....

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    309
    ho provato con il mio account di libero ed è vero non si riesce. da accesso negato. se metto auth a false l'errore è che bisogna autenticarsi e se levo il @ utente o password errato. Potrebbe essere che ci sono dei blocchi per l'invio di mail via codice?
    tomcat 6.016
    netbeans 6.1

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.