Printemps - Envoi d'e-mails avec pièce jointe
Voici un exemple d'utilisation de Spring pour envoyer des e-mails contenant des pièces jointes via le serveur SMTP Gmail. Pour contenir la pièce jointe dans votre e-mail, vous devez utiliser lesJavaMailSender & MimeMessage de Spring, au lieu deMailSender & SimpleMailMessage.
1. Dépendance du projet
Ajoutez la dépendance JavaMail et Spring.
Fichier: pom.xml
4.0.0 com.example.common SpringExample jar 1.0-SNAPSHOT SpringExample http://maven.apache.org Java.Net http://download.java.net/maven/2/ junit junit 3.8.1 test javax.mail 1.4.3 org.springframework spring 2.5.6
2. Expéditeur de courrier de Spring
Vous devez utiliserJavaMailSender au lieu de MailSender pour envoyer des pièces jointes et attacher les ressources avecMimeMessageHelper. Dans cet exemple, il obtiendra le fichier texte «c: \ log.txt» de votre système de fichiers (FileSystemResource) en tant que pièce jointe à un e-mail.
En plus du système de fichiers, vous pouvez également obtenir toutes les ressources du chemin URL (UrlResource), Classpath (ClassPathResource), InputStream (InputStreamResource)… veuillez vous référer aux classes implémentées deAbstractResource de Spring .
Fichier: MailMail.java
package com.example.common; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.MailParseException; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; public class MailMail { private JavaMailSender mailSender; private SimpleMailMessage simpleMailMessage; public void setSimpleMailMessage(SimpleMailMessage simpleMailMessage) { this.simpleMailMessage = simpleMailMessage; } public void setMailSender(JavaMailSender mailSender) { this.mailSender = mailSender; } public void sendMail(String dear, String content) { MimeMessage message = mailSender.createMimeMessage(); try{ MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setFrom(simpleMailMessage.getFrom()); helper.setTo(simpleMailMessage.getTo()); helper.setSubject(simpleMailMessage.getSubject()); helper.setText(String.format( simpleMailMessage.getText(), dear, content)); FileSystemResource file = new FileSystemResource("C:\\log.txt"); helper.addAttachment(file.getFilename(), file); }catch (MessagingException e) { throw new MailParseException(e); } mailSender.send(message); } }
3. Fichier de configuration du bean
Configurez le bean mailSender, le modèle d'e-mail et spécifiez les détails de l'e-mail pour le serveur SMTP Gmail.
Fichier: Spring-Mail.xml
true true
4. Exécuter
package com.example.common; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class App { public static void main( String[] args ) { ApplicationContext context = new ClassPathXmlApplicationContext("Spring-Mail.xml"); MailMail mm = (MailMail) context.getBean("mailMail"); mm.sendMail("Yong Mook Kim", "This is text content"); } }
sortie
Dear Yong Mook Kim, Mail Content : This is text content Attachment : log.txt
Télécharger le code source
Téléchargez-le -Spring-Email-Attachment-Example.zip