一、发送带HTML格式的邮件
可指定,邮件发送人,接收人,抄送人,秒送人。。。支持多人
SendMail.java
package com.tht.common.mail;
import java.util.Properties;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.apache.log4j.Logger;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
public class SendMail {
Logger log=Logger.getLogger(SendMail.class);
public boolean sendMail(String[] tos,String[] cc,String[] bcc,String service,String from,String username,String password,String subject,String htmlText){
JavaMailSenderImpl senderImpl=new JavaMailSenderImpl();
//设置收件人、寄件人、主题与正文
try {
// Properties p=PropertiesUtil.getProperties("properties/cmail.properties");
//设置Mail Server
senderImpl.setHost(service);
//建立邮件消息
MimeMessage mailMessage=senderImpl.createMimeMessage();
MimeMessageHelper messageHelper=new MimeMessageHelper(mailMessage,true,"UTF-8");
Properties prop=new Properties();
prop.put( "mail.smtp.auth" , "true" ) ; // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
prop.put( "mail.smtp.timeout" , "25000" ) ;
senderImpl.setJavaMailProperties(prop);
senderImpl.setUsername(username);
senderImpl.setPassword(password);
messageHelper.setSubject(subject);
//邮件接收人
messageHelper.setTo(tos);
//钞送
if(cc!=null && cc.length>0){
messageHelper.setCc(cc);
}
//密送
if(bcc!=null && bcc.length>0){
messageHelper.setBcc(bcc);
}
messageHelper.setFrom(from);
messageHelper.setText(htmlText,true);
//传送邮件
senderImpl.send(mailMessage);
} catch (MessagingException e) {
log.error(e.getMessage(), e.fillInStackTrace());
return false;
}
return true;
}
}
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import com.tht.common.mail.SendMail;
public class RunSendMail {
Logger log=Logger.getLogger(RunSendMail.class);
/**
* @param args
*/
public static void main(String[] args) {
RunSendMail runSendMail=new RunSendMail();
SendMail sendMail=new SendMail();
/**
* 邮件接收人
*/
String[] tos={"m800400@163.com","thinktothings@gmail.com"};
/**
* 邮件抄送人
*/
String[] cc={"m800400@163.com","thinktothings@gmail.com"};
/**
* 密送
*/
String[] bbc={"thinktothings@gmail.com"};
/* String username="testthinks@163.com";
String password="Test123";*/
/**
* 发送邮件的服务器
*/
String service="smtp.163.com";
String username="m800400@163.com";
String password="@m800400";
/**
* 发件人(显示,有些邮件服务商需要与用户验证名一致)
*/
String from ="m800400@163.com";
String subject="test subject";
String htmlText="<html><head><title>Title test</title></head><body><h1>Receive attach Please</h1>Have problems email to contact Please. liuwen@m800400.com</body></html>";
boolean result=sendMail.sendMail(tos,cc,bbc,service,from,username,password,subject,htmlText);
runSendMail.log.debug("send mail info: " +" from ("+from+" ) tos ("+runSendMail.arrayToString(tos, ",")+") cc (" +runSendMail.arrayToString(cc, " ")+")");
runSendMail.log.debug("send mail result:"+result);
}
/**
* 将数组转成字符串
* @param strs
* @param split
* @return
*/
public String arrayToString(String[] strs,String split){
StringBuffer stb=new StringBuffer();
if(strs!=null && strs.length>0){
for(String s:strs){
stb.append(s).append(split);
}
}
return stb.toString();
}
}
二、发送带HTML格式的邮件和附件的邮件
可指定,邮件发送人,接收人,抄送人,秒送人。。。支持多人,支持带附件
package com.tht.common.mail;
import java.io.File;
import java.util.Properties;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.apache.log4j.Logger;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
public class AttachedMulti {
Logger log=Logger.getLogger(AttachedMulti.class);
public boolean sendMail(String[] filePaths,String[] tos,String[] cc,String[] bcc,String service,String from,String username,String password,String subject,String htmlText){
JavaMailSenderImpl senderImpl=new JavaMailSenderImpl();
//设置收件人、寄件人、主题与正文
try {
// Properties p=PropertiesUtil.getProperties("properties/cmail.properties");
//设置Mail Server
senderImpl.setHost(service);
//建立邮件消息
MimeMessage mailMessage=senderImpl.createMimeMessage();
MimeMessageHelper messageHelper=new MimeMessageHelper(mailMessage,true,"UTF-8");
Properties prop=new Properties();
prop.put( "mail.smtp.auth" , "true" ) ; // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
prop.put( "mail.smtp.timeout" , "25000" ) ;
senderImpl.setJavaMailProperties(prop);
senderImpl.setUsername(username);
senderImpl.setPassword(password);
messageHelper.setSubject(subject);
//邮件接收人
messageHelper.setTo(tos);
//钞送
if(cc!=null && cc.length>0){
messageHelper.setCc(cc);
}
//密送
if(bcc!=null && bcc.length>0){
messageHelper.setBcc(bcc);
}
messageHelper.setFrom(from);
messageHelper.setText(htmlText,true);
//第一个附件
if(filePaths!=null && filePaths.length>0){
for(int i=0;i<filePaths.length;i++){
File file=new File(filePaths[i]);
if(file.exists()){
messageHelper.addAttachment(file.getName(),file);
}
}
}
//传送邮件
senderImpl.send(mailMessage);
} catch (MessagingException e) {
log.error(e.getMessage(), e.fillInStackTrace());
return false;
}
return true;
}
}
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import com.tht.common.mail.AttachedMulti;
import com.tht.common.mail.SendMail;
public class RunAttachedMulti {
Logger log=Logger.getLogger(RunAttachedMulti.class);
/**
* @param args
*/
public static void main(String[] args) {
RunAttachedMulti runSendMail=new RunAttachedMulti();
AttachedMulti sendMail=new AttachedMulti();
//String[] files={"data/test2.zip","data/apache-tomcat-6.0.32-windows-x64.zip"};
String[] files={"data/test2.zip"};
/**
* 邮件接收人
*/
// String[] tos={"thinktothings@gmail.com","liuwen@m800400.com","thinktothings@163.com"};
String[] tos={"thinktothings@gmail.com","thinktothings@163.com"};
/**
* 邮件抄送人
*/
//String[] cc={"m800400@163.com","thinktothings@gmail.com","thinktothings@163.com"};
String[] cc=null;
/**
* 密送
*/
String[] bbc={"thinktothings@gmail.com"};
String username="m800400@163.com";
String password="@m800400";
/**
* 发送邮件的服务器
*/
String service="smtp.163.com";
/**
* 发件人(显示,有些邮件服务商需要与用户验证名一致)
*/
String from ="m800400@163.com";
String subject="test subject";
String htmlText="<html><head><title>Title test</title></head><body><h1>Receive attach Please</h1>Have problems email to contact Please. liuwen@m800400.com</body></html>";
boolean result=sendMail.sendMail(files,tos,cc,bbc,service,from,username,password,subject,htmlText);
runSendMail.log.debug("send mail info: " +" from ("+from+" ) tos ("+runSendMail.arrayToString(tos, ",")+") cc (" +runSendMail.arrayToString(cc, ",")+")"+" attachedFiles ("+runSendMail.arrayToString(files, ",")+")");
runSendMail.log.debug("send mail result:"+result);
}
/**
* 将数组转成字符串
* @param strs
* @param split
* @return
*/
public String arrayToString(String[] strs,String split){
StringBuffer stb=new StringBuffer();
if(strs!=null && strs.length>0){
for(String s:strs){
stb.append(s).append(split);
}
}
return stb.toString();
}
}