一、发送带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();
- }
- }