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;
}
}
java发送邮件,布布扣,bubuko.com
java发送邮件