package org.utils.mail;
import java.io.File;
import java.util.List;
import java.util.Properties;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.utils.mail.Mail;
public class EmailUtil {
/**
* 发送纯文本设置
*
*
* @author 公司名 -- zhangnn
*
* 2014-2-10 上午10:51:39
*/
public static void sendTextSecond(Mail mail) {
JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
// 设定mail server
senderImpl.setHost(mail.getHost());
// 设置端口号
senderImpl.setPort(mail.getPort());
// 建立邮件消息
SimpleMailMessage mailMessage = new SimpleMailMessage();
// 设置收件人,寄件人 用数组发送多个邮件
// String[] array = new String[] {"sun111@163.com","sun222@sohu.com"};
// mailMessage.setTo(array);
// 设置收件人
mailMessage.setTo(mail.getGetName());
// 设置寄件人
mailMessage.setFrom(mail.getSendName());
// 标题
mailMessage.setSubject(mail.getProject());
// 内容
mailMessage.setText(mail.getContent());
// 根据自己的情况,设置username
senderImpl.setUsername(mail.getSendName());
// 根据自己的情况, 设置password
senderImpl.setPassword(mail.getSendPwd());
Properties prop = new Properties();
// 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
prop.put("mail.smtp.auth", "true");
// 连接超时
prop.put("mail.smtp.timeout", "100000000");
senderImpl.setJavaMailProperties(prop);
// 发送邮件
senderImpl.send(mailMessage);
}
/**
* 发送html
*
* @throws MessagingException
*
* @author 公司名 -- zhangnn
*
* 2014-2-10 上午10:51:08
*/
public static void sendHtml(Mail mail) throws MessagingException {
JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
// 建立邮件消息,发送text邮件和html邮件的区别
MimeMessage mailMessage = senderImpl.createMimeMessage();
// multipart模式 为true时发送附件 可以设置html格式
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,
true, "utf-8");
// 设定mail server
senderImpl.setHost(mail.getHost());
// 设置端口号
senderImpl.setPort(mail.getPort());
// 设置收件人
messageHelper.setTo(mail.getGetName());
// 设置寄件人
messageHelper.setFrom(mail.getSendName());
// 标题
messageHelper.setSubject(mail.getProject());
// 内容
messageHelper.setText( mail.getContent(), true);
// 根据自己的情况,设置username
senderImpl.setUsername(mail.getSendName());
// 根据自己的情况, 设置password
senderImpl.setPassword(mail.getSendPwd());
Properties prop = new Properties();
// 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
prop.put("mail.smtp.auth", "true");
// 连接超时
prop.put("mail.smtp.timeout", "25000");
senderImpl.setJavaMailProperties(prop);
// 发送邮件
senderImpl.send(mailMessage);
}
/**
* 发送包含附件
*
* @throws MessagingException
*
* @author 公司名 -- zhangnn
*
* 2014-2-10 上午10:50:51
* @param fileUrl
*/
public static void sendAttach(List<File> mailFiles, List<String> mailFilesFileName,
Mail mail) throws MessagingException {
JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
// 建立邮件消息,发送text邮件和html邮件的区别
MimeMessage mailMessage = senderImpl.createMimeMessage();
// 注意这里的boolean,等于真的时候才能嵌套图片,在构建MimeMessageHelper时候,所给定的值是true表示启用,
// multipart模式 为true时发送附件 可以设置html格式
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,
true, "utf-8");
// 设定mail server
senderImpl.setHost(mail.getHost());
// 设置端口号
senderImpl.setPort(mail.getPort());
// 设置收件人
messageHelper.setTo(mail.getGetName());
// 设置寄件人
messageHelper.setFrom(mail.getSendName());
// 标题
messageHelper.setSubject(mail.getProject());
// 内容
messageHelper.setText( mail.getContent(), true);
for (int i = 0; i < mailFiles.size(); i++) {
FileSystemResource file = new FileSystemResource(mailFiles.get(i));
// 这里的方法调用和插入图片是不同的。
messageHelper.addAttachment(mailFilesFileName.get(i), file);
}
// 根据自己的情况,设置username
senderImpl.setUsername(mail.getSendName());
// 根据自己的情况, 设置password
senderImpl.setPassword(mail.getSendPwd());
Properties prop = new Properties();
// 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
prop.put("mail.smtp.auth", "true");
// 连接超时
prop.put("mail.smtp.timeout", "25000");
senderImpl.setJavaMailProperties(prop);
// 发送邮件
senderImpl.send(mailMessage);
}
}
//需要的实体类Mail
package org.utils.mail; /** * 发送邮件的一些信息 Package : org.zhangnn.model.mail * * @author 公司名 -- zhangnn * * 2014-2-10 上午10:34:06 * */ public class Mail { /** 发件人邮箱 */ private String sendName; /** 发件人密码 */ private String sendPwd; /** 接受邮箱 */ private String getName; /** 标题 */ private String project; /** 内容 */ private String content; /** 设置mail服务,例如smtp.163.com; */ private String host; /** 设置端口 */ private int port; public Mail(String sendName, String sendPwd, String getName, String project, String content, String host, int port) { super(); this.sendName = sendName; this.sendPwd = sendPwd; this.getName = getName; this.project = project; this.content = content; this.host = host; this.port = port; } public Mail() { super(); // TODO Auto-generated constructor stub } public String getSendName() { return sendName; } public void setSendName(String sendName) { this.sendName = sendName; } public String getSendPwd() { return sendPwd; } public void setSendPwd(String sendPwd) { this.sendPwd = sendPwd; } public String getGetName() { return getName; } public void setGetName(String getName) { this.getName = getName; } public String getProject() { return project; } public void setProject(String project) { this.project = project; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getHost() { return host; } public void setHost(String host) { this.host = host; } public int getPort() { return port; } public void setPort(int port) { this.port = port; } }
原文:http://blog.csdn.net/sxj_world/article/details/21236319