sendmailimpl.java

来自「基于Sturts+Spring+Hibernate的一个高级销售管理系统。内容丰」· Java 代码 · 共 93 行

JAVA
93
字号
package com.yuanchung.sales.util.emailutil;

import java.io.File;
import java.util.Date;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Multipart;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import org.springframework.mail.MailSendException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;

import com.yuanchung.sales.exception.ApplicationException;

public class SendMailImpl implements SendMail {

	private JavaMailSenderImpl javaMailSenderImpl;
	private SimpleMailMessage simpleMailMessage;

	public SimpleMailMessage getSimpleMailMessage() {
		return simpleMailMessage;
	}

	public void setSimpleMailMessage(SimpleMailMessage simpleMailMessage) {
		this.simpleMailMessage = simpleMailMessage;
	}

	public JavaMailSenderImpl getJavaMailSenderImpl() {
		return javaMailSenderImpl;
	}

	public void setJavaMailSenderImpl(JavaMailSenderImpl javaMailSenderImpl) {
		this.javaMailSenderImpl = javaMailSenderImpl;
	}
	
	//简单邮件发送
	public void sendMail(String email,String subject,String text) {
		System.out.println("开始发送邮件");
		SimpleMailMessage sMMessage = new SimpleMailMessage(simpleMailMessage);
		sMMessage.setTo(email);//收件人地址
		sMMessage.setSubject(subject);//标题
		sMMessage.setText(text);//内容
		sMMessage.setSentDate(new Date());
		try {
			javaMailSenderImpl.send(sMMessage);
		} catch (MailSendException se) {
			System.out.println(se.getMessage());
			throw new ApplicationException(se.getMessage());
		}
		System.out.println("发送邮件成功");
	}
	//带附件邮件发送
	public void sendMailWithFile(String email, String subject, String text) throws Exception {
		MimeMessage mimeMessage = javaMailSenderImpl.createMimeMessage();
		MimeMessageHelper mmHelper = new MimeMessageHelper(mimeMessage,true);//true表示使用Multipart模式
		mmHelper.setFrom(simpleMailMessage.getFrom());
		mmHelper.setSubject(subject);
		mmHelper.setText(text,true);//true表示使用HTML模式
		mmHelper.setSentDate(new Date());
		mmHelper.setTo(email);
		//附件添加
		Multipart multipart = new MimeMultipart();
		// 向Multipart添加正文
		
		MimeBodyPart mimeBodyPart = new MimeBodyPart();
		mimeBodyPart.setContent(mimeMessage.getContent(),"text/html;charset=utf-8");
		
		// 向MimeMessage添加(Multipart代表正文)
		multipart.addBodyPart(mimeBodyPart);
		
		// 向Multipart添加附件
		MimeBodyPart attachFile = new MimeBodyPart();
		FileDataSource fds = new FileDataSource(new File("D:/hwb.sql"));
		attachFile.setDataHandler(new DataHandler(fds));
		attachFile.setFileName(fds.getName());
		multipart.addBodyPart(attachFile);
		
		//向Multipart添加MimeMessage
		mimeMessage.setContent(multipart);
		//end
		try {
			javaMailSenderImpl.send(mimeMessage);
		} catch (MailSendException se) {
			System.out.println(se.getMessage());
			throw new ApplicationException(se.getMessage());
		}
	}
	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?