Envoyé un mail

Envoyé un mail - Java - Programmation

Marsh Posté le 14-04-2010 à 20:16:28    

Bonsoir,
voici un code simple qui me permet d'envoyé un mail, le probléme c'est qu'il m'affiche une exception :
 
L'envoi du mail a échoué : 530 5.7.0 Must issue a STARTTLS command first. 22sm1194753fkr.59
 
j'utilise : smtp.<FSI>
 
voici mon code

Code :
  1. String from = "from@....com";
  2. String to = "desitnatio@....com";
  3. String subject = "le sujet...";
  4. String content = "Le message en texte ou <b>html</b>";
  5. try {
  6.    Properties props = System.getProperties();
  7.    props.put("mail.smtp.host", "smtp.gmail.com" );
  8.    Session ses = Session.getDefaultInstance(props, null);
  9.    MimeMessage message = new MimeMessage(ses);
  10.    message.setFrom(new InternetAddress(from));
  11.    message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
  12.    message.setSubject(subject);
  13.    //Envoi en HTML
  14.    message.setContent(content, "text/html" );
  15.    //ou alors pour l'envoi en texte
  16.    message.setText(content);
  17.    javax.mail.Transport.send(message);
  18.    System.err.println("Mail envoyé avec succée" );
  19. }
  20. catch (Exception e) {
  21. System.err.println("L'envoi du mail a échoué : "+e.getMessage());
  22. }


Message édité par man_u le 14-04-2010 à 20:23:38
Reply

Marsh Posté le 14-04-2010 à 20:16:28   

Reply

Marsh Posté le 15-04-2010 à 10:47:51    

Reply

Marsh Posté le 15-04-2010 à 18:21:58    

personne peut me dire pourquoi ce bout de code ne marche pas ?
il ne reconnais pas la ligne : MailUtils mailutils = new MailUtils();
 

Code :
  1. import java.security.Security;
  2. import java.util.Properties;
  3. import javax.mail.Message;
  4. import javax.mail.PasswordAuthentication;
  5. import javax.mail.Session;
  6. import javax.mail.Transport;
  7. import javax.mail.internet.InternetAddress;
  8. import javax.mail.internet.MimeMessage;
  9. public class SimpleMail
  10. {
  11. private String mailhost = "smtp.gmail.com";
  12. public synchronized void sendMail(String subject, String body, String sender, String recipients)                      throws Exception
  13. {
  14.  //Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
  15.  Properties props = new Properties();
  16.  props.setProperty("mail.transport.protocol", "smtp" );
  17.  props.setProperty("mail.host", mailhost);
  18.  props.put("mail.smtp.auth", "true" );
  19.  props.put("mail.smtp.port", "465" );
  20.  props.put("mail.smtp.socketFactory.port", "465" );
  21.  props.put("mail.smtp.socketFactory.class",
  22.  "javax.net.ssl.SSLSocketFactory" );
  23.  props.put("mail.smtp.socketFactory.fallback", "false" );
  24.  props.setProperty("mail.smtp.quitwait", "false" );
  25.  Session session = Session.getDefaultInstance(props,
  26.    new javax.mail.Authenticator()
  27.  {
  28.   protected PasswordAuthentication getPasswordAuthentication()
  29.   { return new PasswordAuthentication("username","password" ); }
  30.  });
  31.  MimeMessage message = new MimeMessage(session);
  32.  message.setSender(new InternetAddress(sender));
  33.  message.setSubject(subject);
  34.  message.setContent(body, "text/plain" );
  35.  if (recipients.indexOf(',') > 0)
  36.     message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));
  37.  else
  38.     message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));
  39.  Transport.send(message);
  40. }
  41. public static void main(String args[]) throws Exception
  42. {
  43.  MailUtils mailutils = new MailUtils();
  44.  mailutils.sendMail("test", "test", "from@gmail.com", "To@gmail.com" );
  45. }
  46. }

Reply

Marsh Posté le 15-04-2010 à 21:40:39    

remplace MailUtils par SimpleMail
 [:poutrella]

Reply

Marsh Posté le 16-04-2010 à 00:11:38    

merci pour ton aide phnatomass. il m'affiche pas une erreur maintenant mais lors de l'exécution il m'affiche une excéption :
 

Code :
  1. Exception in thread "main" javax.mail.AuthenticationFailedException
  2. at javax.mail.Service.connect(Service.java:260)
  3. at javax.mail.Service.connect(Service.java:130)
  4. at javax.mail.Service.connect(Service.java:82)
  5. at com.sun.mail.smtp.SMTPTransport.connect(SMTPTransport.java:140)
  6. at javax.mail.Transport.send0(Transport.java:146)
  7. at javax.mail.Transport.send(Transport.java:76)
  8. at SimpleMail.sendMail(SimpleMail.java:48)
  9. at SimpleMail.main(SimpleMail.java:56)


une idée ?
 
merci

Reply

Marsh Posté le 16-04-2010 à 15:00:42    

dans ce code, as-tu mis ton vrai user et mot de passe  ?

Code :
  1. protected PasswordAuthentication getPasswordAuthentication()
  2. {
  3.   return new PasswordAuthentication("username", "password" );
  4. }

Reply

Marsh Posté le 16-04-2010 à 15:13:00    

le password et user name de ma boite Gmail ? oui oui les vrais.
le probléme je croi dans le SMTP

Reply

Marsh Posté le 23-04-2010 à 01:43:56    

man_u a écrit :

le password et user name de ma boite Gmail ? oui oui les vrais.
le probléme je croi dans le SMTP


 
J'ai eu du mal aussi pour le faire fonctionner, essaie de mettre le paquet, c'est probablement trop mais chez moi ça marche :
 
* Remplace la property "mail.host" par "mail.smtp.host".
 
* Rajoute  les properties :
 
mail.smtp.user=user@gmail.com
mail.smtp.password=password
mail.smtp.starttls.enable=true
mail.smtp.ssl.enable=true
 
et pour voir ce qui se passe :
mail.smtp.debug=true
 
Et en plus dans ton code "Session session = Session.getInstance(props, ..." au lieu de "getDefaultInstance", et "session.setDebug(true);" toujours pour voir ce qui se passe.
 
Sinon ton code est correct, mais Google est très "tricky", chez moi en insistant aussi lourdement ça marche.


---------------
When injustice becomes law, resistance becomes duty (Thomas Jefferson)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed