`
thinktothings
  • 浏览: 769095 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring mail

    博客分类:
  • Mail
阅读更多

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

}

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics