Bonjour à tous,
J'ai un problème, je bosse depuis ce midi sur l'envoi de mail via mon petit programme JAVA. Malgré tous mes efforts, je n'arrive pas à envoyer un seul mail, après mon test unitaire, j'obtiens l'erreur suivante:
java.lang.NoClassDefFoundError: com/sun/activation/registries/LogSupport
at javax.activation.MailcapCommandMap.<init>(MailcapCommandMap.java:111)
at javax.activation.CommandMap.getDefaultCommandMap(CommandMap.java:44)
at javax.activation.DataHandler.getCommandMap(DataHandler.java:136)
at javax.activation.DataHandler.getDataContentHandler(DataHandler.java:567)
at javax.activation.DataHandler.writeTo(DataHandler.java:294)
at javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:230)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1065)
at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:1923)
at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1904)
[...]
Je galère vraiment car je ne comprends pas pourquoi mon code me renvoie cette erreur (j'ai l'impression qu'elle n'est même pas "catchée"). Voici maintenant mon code source :
String destinataire = "xxx@ma_societe.fr";
String expediteur = "yyy@ta_societe.fr";
String serveurSMTP = "smtp.ma_societe.fr";
String username = "xxx";
String password = "mon_pass";
Properties props = new Properties();
props.put("mail.smtp.host", serveurSMTP);
props.setProperty("mail.user", username);
props.setProperty("mail.password", password);
Session session = Session.getInstance(props, null);
try
{
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(expediteur));
InternetAddress[] address = {new InternetAddress(destinataire)};
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject("Hello World Subjects");
msg.setText("Hello World content");
msg.saveChanges(); // implicit with send()
Transport transport = session.getTransport("smtp");
transport.connect(serveurSMTP, username, password);
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();
//Transport.send(msg);
}
catch (MessagingException e)
{
System.out.println("\nErreur"+e.getMessage());
}
Partager