Salve, sono nuovo del forum ma spesso ne ho preso spunti utili;
provando a scrivere una applicazione in java che alla registrazione di un utente gli manda una email non riesco, mi viene restituita una eccezione e vorrei chiedere cosa c'è di sbagliato e come poter risolvere, a me interessa solo poter inviare una mail!
L'indirizzo dal quale la mail dovrebbe partire è di gmail : es. prova @ gmail.com
ho seguito quanto messo in questa discussione: http://forum.html.it/forum/showthrea...eadid=1419293&
questa è la chiamata:
codice:
EmailSender emailDaMandare = new EmailSender("----@gmail.com", "---------", "----@gmail.com", emailNuovoUtente, "OGGETTO: Recupero password", informazioniRegistrazione);
emailDaMandare.inviaEmail();
e questa la classe EmailSender.java:
codice:
import javax.mail.*;
import javax.mail.internet.*;
import com.sun.mail.smtp.SMTPSSLTransport;
import java.util.Properties;
public class EmailSender {
private static final String SMTP_HOST_NAME = "smtp.gmail.com";
private static final int SMTP_HOST_PORT = 465;
private String SMTP_AUTH_USER = "user@gmail.com";
private String SMTP_AUTH_PWD = "pass";
private String subject = "oggetto";
private String[] informazioni;
private String destinatario;
public EmailSender(String username, String password, String mittente, String destinatario, String oggetto, String[] informazioniRegistrazione){
// TODO Auto-generated constructor stub
SMTP_AUTH_USER = username;
SMTP_AUTH_PWD = password;
subject = oggetto;
informazioni = informazioniRegistrazione;
this.destinatario = destinatario;
}
public void inviaEmail() {
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(subject);
if(informazioni[0].equals("Registrazione"))
message.setContent("Benvenuto " + informazioni[1] + " " + informazioni[2] + "!!!\nti diamo il benvenuto!\n\nI tuoi dati di accesso sono:\nusername = " + informazioni[3] + "\npassword = " + informazioni[4], "text/plain");
else
message.setContent("Salve utente " + destinatario + ",\nin merito alla tua richiesta di recupero, ecco la tua password:\n\t\t" + informazioni[0], "text/plain");
// message.setContent("This is a test", "text/plain");
message.addRecipient(Message.RecipientType.TO, new InternetAddress(destinatario));
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);
}
}
}
sulla console mi viene mostrato questo:
Loading javamail.default.providers from jar:file:/C:/Program%20Files/eclipse2/workspace_Eclipse/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/RestfulWebServiceProject/WEB-INF/lib/javax.mail_1.4.0.v201005080615.jar!/META-INF/javamail.default.providers
DEBUG: loading new provider protocol=smtp, className=org.apache.geronimo.javamail.transport.s mtp.SMTPTransport, vendor=Apache Software Foundation, version=1.0
DEBUG: loading new provider protocol=smtps, className=org.apache.geronimo.javamail.transport.s mtp.SMTPTSransport, vendor=Apache Software Foundation, version=1.0
DEBUG: loading new provider protocol=nntp-post, className=org.apache.geronimo.javamail.transport.n ntp.NNTPTransport, vendor=Apache Software Foundation, version=1.0
DEBUG: loading new provider protocol=nntp, className=org.apache.geronimo.javamail.store.nntp. NNTPStore, vendor=Apache Software Foundation, version=1.0
DEBUG: loading new provider protocol=pop3, className=org.apache.geronimo.javamail.store.pop3. POP3Store, vendor=Apache Software Foundation, version=1.0
DEBUG: getProvider() returning provider protocol=smtps; type=javax.mail.Provider$Type@4ac66122; class=org.apache.geronimo.javamail.transport.smtp. SMTPTSransport; vendor=Apache Software Foundation;version=1.0
javax.mail.NoSuchProviderException: Unable to load class for provider: protocol=smtps; type=javax.mail.Provider$Type@4ac66122; class=org.apache.geronimo.javamail.transport.smtp. SMTPTSransport; vendor=Apache Software Foundation;version=1.0