Bonjour,
Il te manque une dépendance que tu peux soit configurer avec un projet Maven, soit télécharger le jar et le configurer manuellement.
https://central.sonatype.com/artifact/javax.activation/activation/1.1.1
Merci pour le lien. Mais je ne comprends pas ou je dois coller ce snippet :
<dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1.1</version> </dependency>
Est-ce dans le ficher .classpath ? Parce que le créer un projet maven, c'est un peu compliqué pour moi ! Puis-je utiliser l'api javax.mail sans créer de projet maven ?
Le bloc de code XML que tu montres permet de rajouter une dépendance dans un projet Maven (dans le fichier pom.xml)
Mais dans le lien que je te donnais tu peux aussi télécharger directement le jar
(ils ont changé l'interface graphique récemment et je trouve le lien plus difficile à trouver qu'avant, mais il est bien là)
https://repo1.maven.org/maven2/javax/activation/activation/1.1.1/
Merci beaucoup, je n'avais pas vu le lien. Maintenant, j'ai encore des exceptions, mais je devrais y arriver !
En fait j'ai toujours une exception :
javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted.
avec le code suivants :
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
public class SMTPC {
public static void main(String[] args) throws MessagingException {
// Recipient's email ID needs to be mentioned.
String to = "***@***";//change accordingly
// Sender's email ID needs to be mentioned
String from = "***@***";//change accordingly
final String username = "Jo Monnat";//change accordingly
final String password = "xxxxxxx";//change accordingly
// Assuming you are sending email through relay.jangosmtp.net
String host = "smtp.gmail.com";
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", "587");
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.ssl.trust", "smtp.gmail.com");
props.put("mail.smtp.debug", "true");
props.put("mail.smtp.ssl.protocols", "TLSv1.2");
// Get the Session object.
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
// Create a default MimeMessage object.
Message message = new MimeMessage(session);
// Set From: header field of the header.
message.setFrom(new InternetAddress(from));
// Set To: header field of the header.
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(to));
// Set Subject: header field
message.setSubject("Testing Subject");
// Now set the actual message
message.setText("Hello, this is sample for to check send "
+ "email using JavaMailAPI ");
// Send message
Transport.send(message);
System.out.println("Sent message successfully....");
} catch (MessagingException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
J'ai revérifié les paramètres (props et params de connexion username et password), ils sont justes !
Alors quelqu'un sait de quoi pourrais venir cette exception ?
Une petite recherche Google sur le message d'erreur te donne plein de résultats puisque c'est GMail qui te renvoie ce message.
https://www.google.com/search?q=535-5.7.8+Username+and+Password+not+accepted
Apparemment il faudrait configurer ton compte gmail pour autoriser l'envois de mail via un programme tiers comme tu essayes de faire, par défaut c'est désactivé.
https://support.google.com/mail/answer/7126229
Attention : fais tes tests sur une adresse gmail jetable, si ton programme fonctionne mal tu pourrais bloquer le compte associé, ce serait dommage de le faire sur une adresse mail qui compte...