Programme java pour envoi de mail
elkadiri.wd
Messages postés
127
Date d'inscription
Statut
Membre
Dernière intervention
-
Zlatanette37 Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
Zlatanette37 Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un programme pour l'envoi de Mail qui ne fonctionne pas. il ne me donne pas d'erreurs mais il n'envoi pas les messages. voilà le code :
classe SendMail:
package pack1;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendMail {
private String from;
private String to;
private String subject;
private String text;
public SendMail(String from, String to, String subject, String text){
this.from = from;
this.to = to;
this.subject = subject;
this.text = text;
}
public void send(){
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "465");
Session mailSession = Session.getDefaultInstance(props);
Message simpleMessage = new MimeMessage(mailSession);
InternetAddress fromAddress = null;
InternetAddress toAddress = null;
try {
fromAddress = new InternetAddress(from);
toAddress = new InternetAddress(to);
} catch (AddressException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
}
try {
simpleMessage.setFrom(fromAddress);
simpleMessage.setRecipient(RecipientType.TO, toAddress);
simpleMessage.setSubject(subject);
simpleMessage.setText(text);
Transport.send(simpleMessage);
} catch (MessagingException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
}
}
}
Classe Main :
package pack1;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SendMail s1=new SendMail("groupeisi2013@gmail.com", "elkadiri.wd@gmail.com", "Test send mail", "Avez vous reçu mon mail?? By Abdelouhab elkadiri");
s1.send();
}
}
pouvez vous m'aider.
J'ai un programme pour l'envoi de Mail qui ne fonctionne pas. il ne me donne pas d'erreurs mais il n'envoi pas les messages. voilà le code :
classe SendMail:
package pack1;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendMail {
private String from;
private String to;
private String subject;
private String text;
public SendMail(String from, String to, String subject, String text){
this.from = from;
this.to = to;
this.subject = subject;
this.text = text;
}
public void send(){
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "465");
Session mailSession = Session.getDefaultInstance(props);
Message simpleMessage = new MimeMessage(mailSession);
InternetAddress fromAddress = null;
InternetAddress toAddress = null;
try {
fromAddress = new InternetAddress(from);
toAddress = new InternetAddress(to);
} catch (AddressException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
}
try {
simpleMessage.setFrom(fromAddress);
simpleMessage.setRecipient(RecipientType.TO, toAddress);
simpleMessage.setSubject(subject);
simpleMessage.setText(text);
Transport.send(simpleMessage);
} catch (MessagingException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
}
}
}
Classe Main :
package pack1;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SendMail s1=new SendMail("groupeisi2013@gmail.com", "elkadiri.wd@gmail.com", "Test send mail", "Avez vous reçu mon mail?? By Abdelouhab elkadiri");
s1.send();
}
}
pouvez vous m'aider.
A voir également:
- Programme java pour envoi de mail
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Programmer envoi mail gmail - Guide
- Eclipse java - Télécharger - Langages
- Programmer envoi sms - Guide
8 réponses
Salut, je suppose que tu envoies ton mail en SSL,
Deux Observations:
1-A aucun moment tu ne t'authentifies(En gros tu demande au serveur smtp gmail d'envoyer un mail et tu dois lui préciser un compte et un mdp)
2-Ta gestion des Exceptions n'est pas la meilleure, Normal que tu n'obtiennes pas d'erreur (ça donne l'impression que tout marche)
Pourtant ton Transport.send()//Je doute qu'il marche : il devrait te renvoyer une exception du genre hote introuvable!
Commence déja par faire afficher la trace de ton exception lorsque tu l'attrapes et à partir de là tu verra plus clair si un autre pb survient.
Rajoutes aussi ces lignes :
Ensuite pour créer ta session, tu le fais comme ceci:
Avec celà ça devrait aller.
Au besoin essaie déja de faire fonctionner ton programme en local via un serveur de messagerie que tu telecharge en ligne et tu configure.
Hamster par exemple est très facile à mettre en oeuvre. une fois que ça marche en local alors tu peux essayer en ligne
Bon courage!
Deux Observations:
1-A aucun moment tu ne t'authentifies(En gros tu demande au serveur smtp gmail d'envoyer un mail et tu dois lui préciser un compte et un mdp)
2-Ta gestion des Exceptions n'est pas la meilleure, Normal que tu n'obtiennes pas d'erreur (ça donne l'impression que tout marche)
Pourtant ton Transport.send()//Je doute qu'il marche : il devrait te renvoyer une exception du genre hote introuvable!
Commence déja par faire afficher la trace de ton exception lorsque tu l'attrapes et à partir de là tu verra plus clair si un autre pb survient.
Rajoutes aussi ces lignes :
props.put("mail.smtp.socketFactory.port", "465"); props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.put("mail.smtp.auth", "true");
Ensuite pour créer ta session, tu le fais comme ceci:
Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("username","password"); } });
Avec celà ça devrait aller.
Au besoin essaie déja de faire fonctionner ton programme en local via un serveur de messagerie que tu telecharge en ligne et tu configure.
Hamster par exemple est très facile à mettre en oeuvre. une fois que ça marche en local alors tu peux essayer en ligne
Bon courage!
j'obtiens ces erreurs :s
Exception in thread "main" java.lang.SecurityException: Access to default session denied
at javax.mail.Session.getDefaultInstance(Session.java:327)
at javax.mail.Session.getDefaultInstance(Session.java:355)
at pack1.SendMail.send(SendMail.java:47)
at pack1.Test.main(Test.java:11)
Exception in thread "main" java.lang.SecurityException: Access to default session denied
at javax.mail.Session.getDefaultInstance(Session.java:327)
at javax.mail.Session.getDefaultInstance(Session.java:355)
at pack1.SendMail.send(SendMail.java:47)
at pack1.Test.main(Test.java:11)
euh....
J'espère que ta ligne 41 correspond bien à celle ci-haut et que tu as bien retenu que lorsque j'écris ("username","password") il faut renseigner ton nom d'utilisateur et ton mot de passe!!
PasswordAuthentication("username","password");
J'espère que ta ligne 41 correspond bien à celle ci-haut et que tu as bien retenu que lorsque j'écris ("username","password") il faut renseigner ton nom d'utilisateur et ton mot de passe!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
comment faire pour essayer en local?
C'est en forgeant qu'on devient forgeron.
C'est en forgeant qu'on devient forgeron.
Hamster Mail server, c'est un serveur de messagerie que tu peux paramétrer en local en quelques clics et hop tu as ton propre serveur, avec une adresse smtp
que tu utilisera à la place de "smtp.google...."
Ensuite il te suffira de paramétrer un client de messagerie (Outlook/Thunderbid) pour pouvoir recevoir tes mails mais c pas obligatoire, tu peux les voir dans l'interface de Hamster
que tu utilisera à la place de "smtp.google...."
Ensuite il te suffira de paramétrer un client de messagerie (Outlook/Thunderbid) pour pouvoir recevoir tes mails mais c pas obligatoire, tu peux les voir dans l'interface de Hamster
Sinon il y a une librairie existante côté Apache :
http://commons.apache.org/proper/commons-email/userguide.html
A voir si cela peut répondre à ton besoin, mais je suis sûr que oui :-)
http://commons.apache.org/proper/commons-email/userguide.html
A voir si cela peut répondre à ton besoin, mais je suis sûr que oui :-)