Bonjour a tous,
je suis entrain d'apprendre a utilisé l'API javaMail.
Pour mon soft, j'ai juste besoin de pouvoir envoyé un mail (donc SMTP seulement).
Le problème que je rencontre est assez bizarre. En faite, si l'adresse de l'expediteur et du destinataire sont identique, pas de probleme, le mail est bien envoyé.
Par contre dans le cadre d'une utilisation standard (expediteur et destinataire different), j'ai un problème. Je me retrouve avec une erreur de ce type:
(dans mon exemple l’expéditeur a une adresse yahoo et le destinataire une adresse hotmail )//La connexion au serveur SMTP fonctionne bien
MAIL FROM:<adresse@hotmail.fr>
553 From address not verified - see <lien url="http://help.yahoo.com/l/us/yahoo/mail/original/manage/sendfrom-07.html">http://help.yahoo.com/l/us/yahoo/mail/original/manage/sendfrom-07.html</lien>
DEBUG SMTP: got response code 553, with response: 553 From address not verified - see <lien url="http://help.yahoo.com/l/us/yahoo/mail/original/manage/sendfrom-07.html">http://help.yahoo.com/l/us/yahoo/mail/original/manage/sendfrom-07.html</lien>
RSET
250 flushed
com.sun.mail.smtp.SMTPSendFailedException: 553 From address not verified
Voici mon code pour effectué l'envoie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 try { Properties prop = new Properties(); prop.put("mail.smtp.host",f.getServeur().getText()); // ici smtp.mail.yahoo.fr prop.put("mail.smtp.port", f.getPort().getText()); // ici 465 prop.put("mail.smtp.auth", "true"); prop.put("mail.debug", "true"); prop.put("mail.smtp.user", f.getEnvoyeur().getText()); //ici adresse@yahoo.fr prop.put("mail.smtp.password", f.getMdp().getText()); //ici unMotDePasse System.out.println(f.getSslOK().isSelected()); if(f.getSslOK().isSelected()){ //checkbox permettant de savoir si le ssl doit etre activé ou non //ici il faut un support ssl System.out.println("ssl"); prop.put("mail.smtp.ssl.enable", true); } else{ //ici pas de support ssl System.out.println("pas ssl"); prop.put("mail.smtp.ssl.enable", false); } MailAuth ma=new MailAuth(f.getEnvoyeur().getText(), f.getMdp().getText()); Session session = Session.getDefaultInstance(prop,ma); session.setDebug(true); Message message = new MimeMessage(session); message.setFrom(new InternetAddress(f.getEnvoyeur().getText())); InternetAddress[] internetAddresses = new InternetAddress[1]; internetAddresses[0] = new InternetAddress(f.getDestinataire().getText()); message.setRecipients(Message.RecipientType.TO,internetAddresses); message.setSubject("Test"); message.setText("test mail"); message.setSentDate(new Date()); Transport.send(message); } catch (AddressException e1) { e1.printStackTrace(); return false; } catch (MessagingException e1) { e1.printStackTrace(); return false; } return true;
et ma class MailAuth
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 package traitement; import javax.mail.Authenticator; import javax.mail.PasswordAuthentication; /** * Class permettant de gérer l'objet d'authentification * d'un utilisateur sur un serveur SMTP * @author hannibal * */ public class MailAuth extends Authenticator{ /** * Contient l'adresse mail de l'utilisateur */ private String addresse; /** * Contient le mot de passe de l'utilisateur */ private String mdp; public MailAuth(String adresse,String mdp){ this.addresse=adresse; this.mdp=mdp; } @Override public PasswordAuthentication getPasswordAuthentication(){ return new PasswordAuthentication(addresse, mdp); } }
Donc si vous avez une idée d'ou vient le problème.... car la je n'ai aucune idée.
Je vous remercie d'avance pour votre aide
Partager