Problème de connexion à un serveur SMTP
Bonjour
J'essay d'envoyer un email en java mais ça ne marche pas comme prévu. Voici mon code.
package application; import java.util.Properties; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class SendMail { public static void main(String[] args) { Properties props = new Properties(); // props.put("mail.smtp.user", "***@***"); props.put("mail.smtp.debug", "true"); props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.put("mail.smtp.auth", "true"); // Enable authentication if needed props.put("mail.smtp.starttls.enable", "true"); // Enable TLS encryption props.setProperty("mail.smtp.ssl.trust","*"); props.setProperty("mail.smtp.port", "25"); // Get mail session Session session = Session.getInstance(props); try { // Create MimeMessage object MimeMessage email = new MimeMessage(session); // Set sender address email.setFrom(new InternetAddress("***@***")); // Set recipient address email.setRecipients(MimeMessage.RecipientType.TO, InternetAddress.parse("***@***")); // Set subject email.setSubject("code verification"); // Set message content (text/plain) email.setContent("this is you code " + Math.random()*100, "text/plain; charset=utf-8"); // Send the email System.out.println("lllllll"); Transport transport = session.getTransport("smtp"); transport.connect("sandbox.smtp.mailtrap.io", "***@***", "mypassword"); // Connect to SMTP server transport.sendMessage(email, email.getAllRecipients()); // Send email transport.close(); System.out.println("Email sent successfully!"); } catch (MessagingException e) { e.printStackTrace(); } } }
Erreur :
javax.mail.MessagingException: Could not connect to SMTP host: smtp.mailtrap.io, port: 25; nested exception is: java.net.ConnectException: Connection timed out: connect at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1706) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:525) at javax.mail.Service.connect(Service.java:313) at javax.mail.Service.connect(Service.java:172) at javax.mail.Service.connect(Service.java:121) at javax.mail.Transport.send0(Transport.java:190) at javax.mail.Transport.send(Transport.java:120) at application.SendMail.main(SendMail.java:40) Caused by: java.net.ConnectException: Connection timed out: connect at java.base/sun.nio.ch.Net.connect0(Native Method) at java.base/sun.nio.ch.Net.connect(Net.java:589) at java.base/sun.nio.ch.Net.connect(Net.java:578) at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:583) at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) at java.base/java.net.Socket.connect(Socket.java:751) at java.base/java.net.Socket.connect(Socket.java:686) at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:284) at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:227) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1672) ... 7 more
Je peux envoyer un email en SMTP avec Python et JavaScript. J'ai testé cette implémentation avec Windows 10 et 11. J'au aussi ouvert le port 25 au niveau de mes systèmes d'exploitation et de mon fournisseur internet provider. J'ai aussi essayé le port 2525 mais le problème persiste. La seule différence que j'ai observée avec le port 25, c'est que cela met un peu de temps à être traité puis cela retourne une erreur. Merci
Modération : merci de rédiger en français, ce forum étant francophone
- Le protocole assure que la communication entre l'ordinateur d'adèle et le serveur de sa banque est car les informations seront avant d'être envoyées.
- Ordinateur - Guide
- Ordinateur lent que faire - Guide
- Clavier de l'ordinateur - Guide
- Réinitialiser ordinateur - Guide
- Entrer les informations d'identification reseau - Guide
2 réponses
bonjour,
quels messages d'erreur avec la porte 2525?
as-tu essayé avec telnet, comme expliqué: https://help.mailtrap.io/article/59-troubleshooting-email-testing#connection-errors
Bonjour,
Si tu parviens depuis la même machine à envoyer un mail en Javascript ou python, le problème ne peut pas être réseau (car le réseau n'a aucune idée de comment a été forgé un paquet), et donc le problème est purement lié à ton code (mauvais login/mot de passe, mauvaises instructions pour établir la connexion). Ce n'est donc pas un problème de pare feu.
Si on suppose que les login/mot de passe sont corrects, cela veut dire que la manière dont tu te connectes au serveur SMTP est mauvaise.
Du point de vue de la configuration SMTP Tu dois utiliser la même chose que ce que tu as utilisé dans ton script python/javascript : même port et même technique d'authentification. Ces deux aspects dépendent du serveur SMTP. Généralement le port SMTP est d'ailleurs par convention plutôt 587 même si techniquement parlant, un serveur écoute sur le port de son choix.
On ne peut pas les connaître a priori, mais l'organisme qui met à disposition le serveur SMTP est sensé les indiquer clairement à ses usagers. Certains sites synthétisent ces spécifications (voir par exemple cette page). Indique-nous quel serveur SMTP tu utilises si tu veux plus de détails.
Bonne chance