JavaMail - Google

di il
1 risposte

JavaMail - Google

Sto cercando di mandare delle email con Java.
Ho aggiunto alla CLASS_PATH mail.jar e l'altro che adesso non mi ricordo come si chiama.
Girovagando su Internet sono riuscita a scrivere questo codice:

import java.util.Date;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.URLName;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

public class Email {
 

    
    
 public static boolean sendEmail(String to, String subject, String msgText, String fileDaAllegare)
    {
        String from = "email@gmail.com";
        String smtpServer = "smtp.google.com";
        String Autenticazione_USER = "nomeUtente";
        String Autenticazione_PWD  = "password";
        String porta = "465";

        
        boolean esito=true;
        
        Properties props = System.getProperties();     //Setto il server per la spedizione
        props.put("mail.transport.protocol", "smtps");
        props.put("mail.smtps.host", smtpServer);  
        props.put("mail.smtp.port", porta);
        
        
        
        Session session = Session.getDefaultInstance(props, null);
        session.setDebug(true);
        session.setPasswordAuthentication(new URLName("smtp",smtpServer ,465,"INBOX",Autenticazione_USER,Autenticazione_PWD), new PasswordAuthentication(Autenticazione_USER,Autenticazione_PWD));
        
        
        try
        {
            MimeMessage msg = new MimeMessage(session);    //creo il messaggio
            msg.setFrom(new InternetAddress(from));        //setto il mittente
            
            InternetAddress[] address =  {new InternetAddress(to)} ;    
            msg.setRecipients(Message.RecipientType.TO, address);        //setto il/i destinatario/i
            msg.setSubject(subject);                                    //setto l'oggetto del messaggio
            
            //crea e compila la prima parte del messaggio
            MimeBodyPart mbp1 = new MimeBodyPart();
            mbp1.setText(msgText);
            
            
            //crea la sewconda parte del messaggio
            MimeBodyPart mbp2 = new MimeBodyPart();
            
            //inserisce il file come allegato del messaggio
            FileDataSource fds = new FileDataSource(fileDaAllegare);
            mbp2.setDataHandler(new DataHandler(fds));
            mbp2.setFileName(fds.getName());

            Multipart mp = new MimeMultipart();
            mp.addBodyPart(mbp1);
            mp.addBodyPart(mbp2);

            msg.setContent(mp);
            
            msg.setSentDate(new Date());
          
            //invia il messaggio
            Transport.send(msg);
        }
        catch (Exception e) {
            e.printStackTrace();
            esito=false;
        }
        
        return esito;
    }   
 }   
Non funziona. L'errore cha da è questo: DEBUG: setDebug: JavaMail version 1.4.4
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth false
DEBUG SMTP: trying to connect to host "localhost", port 465, isSSL false
javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 465;
nested exception is: java.net.ConnectException: Connection refused

Aiutatemi, per favore. E' urgente. Ah, sono principiante quindi perdonatemi

1 Risposte

  • Re: JavaMail - Google

    DEBUG SMTP: trying to connect to host "localhost", port 465, isSSL false
    javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 465;
    nested exception is: java.net.ConnectException: Connection refused
    la porta 465 richiede autenticazione SSL
    
       ...
       props.put("mail.smtps.auth", "true");
       props.put("mail.smtps.ssl.enable", "true");
       ...
    
Devi accedere o registrarti per scrivere nel forum
1 risposte