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