CodeS-SourceS
Rechercher un code, un tuto, une réponse

Envoi d'un mail avec javamail

Juin 2017


Envoi d'un mail avec JavaMail


Ce tutoriel explique comment envoyer un mail avec java. Pour cela, vous devez disposer d'un serveur SMTP.

Installer l'API


Téléchargez l'api de javamail sur le site d'oracle : http://www.oracle.com/technetwork/java/javamail/index.html

Il faudra ensuite placer cette api dans le classpath du projet : je ne détaille pas plus cette opération qui peut être réalisée de pleureuses manières différentes.

Créer le programme


Voici un programme qui permet d'envoyer un mail simple :
/* L'adresse IP de votre serveur SMTP */
String smtpServer = "10.48.000.00";

/* L'adresse de l'expéditeur */
String from = "monAdresse@monDomaine.fr";

/* L'adresse du destinataire */
String to = "adresseDestinataire@domaine.fr";

/* L'objet du message */
String objet = "Objet";

/* Le corps du mail */
String texte = "Texte du mail";

Properties props = System.getProperties();
props.put("mail.smtp.host", smtpServer);
/* Session encapsule pour un client donné sa connexion avec le serveur de mails.*/
Session session = Session.getDefaultInstance(props, null);

/* Création du message*/
Message msg = new MimeMessage(session);

try {
msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to, false));
msg.setSubject(objet);
msg.setText(texte);
msg.setHeader("X-Mailer", "LOTONtechEmail");
Transport.send(msg);
}
catch (AddressException e) {
e.printStackTrace();
}
catch (MessagingException e) {
e.printStackTrace();
}

Les pièces jointes


Pour envoyer une pièce jointe, il faut utilise un MimeMultipart :
  Multipart multipart = new MimeMultipart();
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText("Le corps du message");
multipart.addBodyPart(messageBodyPart);

messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource("D:\\dossier\pieceJointe.txt");
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName("D:\\dossier\pieceJointe.txt");
multipart.addBodyPart(messageBodyPart);


On créé ensuite le message de la même manière à une exception prêt :
Nous n'utilisons pas la méthode setText() pour écrire le corps du message mais la méthode suivante :
msg.setContent(multipart);

A voir également

Publié par cs_Julien39.
Ce document intitulé «  Envoi d'un mail avec javamail  » issu de CodeS-SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Ajouter un commentaire

Commentaires

Donnez votre avis
L'équivalent de l'evenement onload de vb en java
Imprimer avec Java