Рубрики
Без рубрики

Весна – Отправка электронного письма с вложением

– Весна – Отправка электронного письма с вложением

Вот пример использования Spring для отправки электронной почты с вложениями через SMTP-сервер Gmail. Чтобы сохранить вложение в своем электронном письме, вам необходимо использовать Spring JavaMailSender & MimeMessage , , вместо Отправитель почты и SimpleMailMessage

1. Зависимость от проекта

Добавьте зависимость JavaMail и Spring.

Файл: pom.xml


  4.0.0
  com.mkyong.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
	    mail
	    1.4.3
    
    
    
    
     	org.springframework
	    spring
	    2.5.6
    
    
  

2. Отправитель весенней почты

Вы должны использовать javamailsender вместо отправителя почты для отправки вложений и прикреплять ресурсы с помощью MimeMessageHelper . В этом примере он получит “c:\\log.txt “текстовый файл из вашей файловой системы (FileSystemResource) в виде вложения электронной почты.

Помимо файловой системы, вы также можете получить любые ресурсы из URL-пути ( Url-ресурс ), Пути к классам ( classpathresource ), входного потока ( InputStreamResource )… пожалуйста, обратитесь к весенним Абстрактный ресурс

Файл: MailMail.java

package com.mkyong.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. Файл конфигурации компонента

Настройте компонент MailSender, шаблон электронной почты и укажите данные электронной почты для SMTP-сервера Gmail.

Файл: Spring-Mail.xml




	
	
	
	
		
	
		
           	true
           	true
       	
	

	

	
	

	


	
	
	
	
	
		
    



4. Запустите его

package com.mkyong.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");
        
    }
}

выход

 Dear Yong Mook Kim,
 Mail Content : This is text content
 
 Attachment : log.txt

Скачать Исходный Код

Оригинал: “https://mkyong.com/spring/spring-sending-e-mail-with-attachment/”