Bonjour,
Je souhaite envoyer un mail via mon programme.
Cependant et malgrer le fait que mon code soit correcte, l'envoi bloque a un moment pour m'afficher en erreur :

Exception in thread "main" javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first. co9sm20837741wjb.22 - gsmtp

[/contents/1147-introduction-aux-systemes-unix at] com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.[/download/telecharger-34055318-java-runtime-environment java]:879)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:599)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:319)
at com.sdzee.javamail.Javamail.main(Javamail.java:40)
Je me suis renseigné, cela pourrait venir de l'antivirus qui bloque l'envoi des mails ou bien du paramétrage du compte mail. J'ai désactivé mon antivirus et mon pare-feu sans résultat, et je n'ai rien trouvé dans le paramétrage du compte mail.
J'ai tester beaucoup de code différent tester plusieurs autres méthodes sans sucés et je commence à désespérer.
Voici mon code (les identifiants sont volontairement non entrer ne vous inquiétez pas) :
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
package com.sdzee.javamail;
 
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
 
public class Javamail {
 
  public static void main (String[] args) throws Exception {
 
    String smtpHost = "smtp.gmail.com";
    String from = "monadressemail";
    String to = "ledestinataire";
    String [/contents/1347-wsh-objet-wshnetwork username] = "monlogin";
    String [/contents/64-mots-de-passe password] = "monmotdepasse";
 
    Properties props = new Properties();
    props.put("mail.smtp.host", smtpHost);
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.port", "587");
 
 props.put("mail.smtp.starttls.enable", "true");
 
    Session session = Session.getDefaultInstance(props);
    session.setDebug(true);
 
    MimeMessage message = new MimeMessage(session);   
    message.setFrom(new InternetAddress(from));
    message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
    message.setSubject("Hello");
    message.setText("Hello World");
 
    Transport tr = session.getTransport("smtp");
    tr.connect(smtpHost, username, password);
    message.saveChanges();
 
    // tr.send(message);
    /** Genere l'erreur. Avec l authentification, oblige d utiliser sendMessage meme pour une seule adresse... */
 
    tr.sendMessage(message,message.getAllRecipients());
    tr.close();
 
  }
}
Et voila le cheminement que fait mon programme quand je l'exécute :
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG [/contents/536-les-protocoles-de-messagerie-smtp-pop3-et-imap4 SMTP]: useEhlo true, useAuth true

DEBUG: SMTPTransport trying to connect to host "smtp.gmail.com", port 587

DEBUG SMTP RCVD: 220 mx.google.com ESMTP co9sm20837741wjb.22 - gsmtp

DEBUG: SMTPTransport connected to host "smtp.gmail.com", port: 587

DEBUG SMTP SENT: EHLO Monpc-PC
DEBUG SMTP RCVD: 250-mx.google.com at your service, [88.189.31.2]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250 CHUNKING

DEBUG SMTP Found extension "SIZE", arg "35882577"
DEBUG SMTP Found extension "8BITMIME", arg ""
DEBUG SMTP Found extension "STARTTLS", arg ""
DEBUG SMTP Found extension "ENHANCEDSTATUSCODES", arg ""
DEBUG SMTP Found extension "CHUNKING", arg ""
DEBUG SMTP: use8bit false
DEBUG SMTP SENT: MAIL FROM:<monadressemail>
DEBUG SMTP RCVD: 530 5.7.0 Must issue a STARTTLS command first. co9sm20837741wjb.22 - gsmtp
Pour tomber sur l'erreur :
Exception in thread "main" javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first. co9sm20837741wjb.22 - gsmtp

at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:879)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:599)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:319)
at com.sdzee.javamail.Javamail.main(Javamail.java:40)
Si quelqu'un a la moindre idée du problème (j'ai déjà tester d'autres ports, serveurs smtp, adresses e-mail), ou bien un code qui fonctionnerais cela m'aiderais grandement.
Merci d'avance.