Envoyer un mail par un compte Gmail

Aller en bas

Envoyer un mail par un compte Gmail Empty Envoyer un mail par un compte Gmail

Message  Gus le Mer 7 Oct - 4:02

Voici un premier exemple de code Java pour envoyer un mail automatiquement à partir d'un compte Gmail.
Un accusé de réception est demandé à la lecture du mail. Pour tester ce code, vous devez juste remplacer les parties en vert par vos propres informations



String host = "smtp.gmail.com";
String username = "<votre-adresse-gmail>@gmail.com";
String password = "<votre-mot-de-passe>";
String port = "465";

String to = "<la-liste-des-adresses-de-destination-séparés-par-des-virgules>";
String subject = "Test d'envoi automatique par Java";
String content = "Ceci est un test d'envoi automatique de mail par Java en utilisant l'adresse: "+username;


InternetAddress[] addresses = InternetAddress.parse(to, true);
InternetAddress fromAddress = new InternetAddress(username);

Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.user", username);
props.put("mail.smtp.port", port);
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.debug", "true");
props.put("mail.smtp.socketFactory.port", port);
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");

System.out.println("creating session");
Session session = Session.getDefaultInstance(props, null);

System.out.println("creating message");
MimeMessage message = new MimeMessage(session);
message.setText(content);
message.setSubject(subject);
message.setFrom(fromAddress);
message.setRecipients(Message.RecipientType.TO,addresses);
message.setHeader("Disposition-Notification-To",fromAddress.getAddress());

System.out.println("creating transport");
Transport transport = session.getTransport("smtp");

System.out.println("connecting to "+host+" with username = "+username);
transport.connect(host, username, password);

System.out.println("sending message");
transport.sendMessage(message, message.getAllRecipients());

transport.close();
System.out.println("transport closed");
Gus
Gus
Admin

Messages : 249
Date d'inscription : 01/09/2009

Voir le profil de l'utilisateur http://www.gus05.com

Revenir en haut Aller en bas

Envoyer un mail par un compte Gmail Empty Attention à Avast !

Message  Gus le Jeu 25 Avr - 14:04

Si vous utilisez l'antivirus Avast (version 8 ), l'agent mail doit être paramétré pour permettre aux courrier sortant smtp de s'exécuter sans problème.
Le plus simple est de décocher temporairement la case : Analyser le courrier sortant (SMTP).

Bon, voilà, je vous donne l'astuce parce que j'ai galéré pendant quelques temps avant de comprendre la raison pour laquelle mon programme Java d'envoi de mails de fonctionnait plus comme avant ... Sad
Gus
Gus
Admin

Messages : 249
Date d'inscription : 01/09/2009

Voir le profil de l'utilisateur http://www.gus05.com

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum