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