`

commons-email的使用封装

阅读更多
Java代码 复制代码
  1. package org.apache.commons.mail;   
  2. import java.net.URL;   
  3. import java.util.ArrayList;   
  4. import java.util.List;   
  5.   
  6. import com.hisunsray.travel.config.Config;   
  7.   
  8. public class MailUtils {   
  9.     /**  
  10.      * 简单的发邮件方式    邮件内容只有标题和邮件内容  支持多个用户批量发送  
  11.      * @param subject   邮件标题  
  12.      * @param contents  邮件内容  
  13.      * @param userEmailAddress   收入人的邮件地址  为数组形式  
  14.      * @throws Exception   
  15.      */  
  16.     public static void sendSimpleEmail(String subject,String contents,String [] userEmailAddress,String fromEmailAddress) throws Exception   
  17.     {   
  18.         Config config = new Config();   
  19.         config.loadProperty();   
  20.         SimpleEmail email = new SimpleEmail();   
  21.         email.setHostName(Config.getProperty("mailHostName"));   
  22.         email.setAuthentication(Config.getProperty("mailHostUserName"),Config.getProperty("mailHostPassword"));   
  23.         //发送给多个人   
  24.         for(int i=0;i<userEmailAddress.length;i++)   
  25.         {   
  26.             email.addTo(userEmailAddress[i],userEmailAddress[i]);   
  27.         }   
  28.         email.setFrom(fromEmailAddress,fromEmailAddress);   
  29.         email.setSubject(subject);   
  30.         email.setContent(contents, "text/plain;charset=GBK");    
  31.         email.send();   
  32.     }   
  33.        
  34.     /**  
  35.      * 发送带附件的邮件方式  邮件内容有标题和邮件内容和附件,附件可以是本地机器上的文本,也可以是web上的一个URL 文件,   
  36.      * 当为web上的一个URL文件时,此方法可以将WEB中的URL文件先下载到本地,再发送给收入用户  
  37.      * @param subject   邮件标题  
  38.      * @param contents  邮件内容  
  39.      * @param userEmailAddress   收入人的邮件地址  为数组形式  
  40.      * @param multiPaths         附件地址         为数组形式  
  41.      * @throws Exception   
  42.      * @throws Exception   
  43.      */  
  44.        
  45.     public static void sendMultiPartEmail(String subject,String contents,String [] userEmailAddress,String fromEmailAddress,String []multiPaths) throws Exception   
  46.     {   
  47. //      MimeUtility.encodeText(filename);   测试中文乱码用的   
  48. //      EmailAttachment attachment = new EmailAttachment();   
  49. //      attachment.setPath("D:/hibernate培训讲座.ppt");   
  50. //      attachment.setDisposition(EmailAttachment.ATTACHMENT);   
  51. //      attachment.setDescription("Picture of John");   
  52.         List list=new ArrayList();   
  53. //      EmailAttachment [] attachmentArray = new EmailAttachment[multiPaths.length];   
  54.         for(int j=0;j<multiPaths.length;j++)   
  55.         {   
  56.             EmailAttachment attachment = new EmailAttachment();   
  57.             if(multiPaths[j].indexOf("http")==-1)   //判断当前这个文件路径是否在本地  如果是:setPath  否则  setURL;   
  58.             {   
  59.             attachment.setPath(multiPaths[j]);   
  60.             }   
  61.             else  
  62.             {   
  63.                 attachment.setURL(new URL(multiPaths[j]));   
  64.             }   
  65.             attachment.setDisposition(EmailAttachment.ATTACHMENT);   
  66.             attachment.setDescription("Picture of John");   
  67.             list.add(attachment);   
  68.         }   
  69.         //发送邮件信息   
  70.         Config config = new Config();   
  71.         config.loadProperty();   
  72.         MultiPartEmail email = new MultiPartEmail();   
  73.         email.setHostName(Config.getProperty("mailHostName"));   
  74.         email.setAuthentication(Config.getProperty("mailHostUserName"),Config.getProperty("mailHostPassword"));   
  75.         //发送给多个人   
  76.         for(int i=0;i<userEmailAddress.length;i++)   
  77.         {   
  78.             email.addTo(userEmailAddress[i],userEmailAddress[i]);   
  79.         }   
  80.         email.setFrom(fromEmailAddress,fromEmailAddress);   
  81.         email.setSubject("The picture");   
  82.         email.setMsg(contents);   //注意这个不要使用setContent这个方法  setMsg不会出现乱码   
  83.         for(int a=0;a<list.size();a++)   //添加多个附件   
  84.         {   
  85.              email.attach((EmailAttachment)list.get(a));   
  86.         }   
  87. //      email.attach(attachment);   
  88.         email.send();   
  89.     }   
  90.        
  91.     /**  
  92.      * 发送Html格式的邮件  
  93.      * @param subject   邮件标题  
  94.      * @param contents  邮件内容  
  95.      * @param userEmailAddress  接收用户的邮箱地址  
  96.      * @param fromEmailAddress  发送人的邮箱地址  
  97.      *          
  98.      * @throws Exception  
  99.      */  
  100.     public static void sendHtmlEmail(String subject,String contents,String [] userEmailAddress,String fromEmailAddress) throws Exception   
  101.     {   
  102.         Config config = new Config();   
  103.         config.loadProperty();   
  104.         HtmlEmail email = new HtmlEmail();   
  105.         email.setHostName(Config.getProperty("mailHostName"));   
  106.         email.setAuthentication(Config.getProperty("mailHostUserName"),Config.getProperty("mailHostPassword"));   
  107.         //发送给多个人   
  108.         for(int i=0;i<userEmailAddress.length;i++)   
  109.         {   
  110.             email.addTo(userEmailAddress[i],userEmailAddress[i]);   
  111.         }   
  112.         email.setFrom(fromEmailAddress,fromEmailAddress);   
  113.         email.setSubject(subject);   
  114.         email.setHtmlMsg(contents);   
  115.         email.setTextMsg(contents);   
  116.         email.send();   
  117.     }   
  118.     /**  
  119.      * 统一的发送邮件的方法   调用时一定要实例化EmailBean对象     
  120.      * @throws Exception   
  121.      *  
  122.      */  
  123.     public static void sendEmail(EmailBean bean) throws Exception   
  124.     {   
  125.         if(bean.isHaveMultPaths())   
  126.         {   
  127.             sendMultiPartEmail(bean.getSubject(),bean.getContents(),bean.getUserEmailAddress(),bean.getFromEmailAddress(),bean.getMultiPaths());   
  128.         }   
  129.         else  
  130.         {   
  131.             sendSimpleEmail(bean.getSubject(),bean.getContents(),bean.getUserEmailAddress(),bean.getFromEmailAddress());   
  132.         }   
  133.     }   
  134. }  
package org.apache.commons.mail;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import com.hisunsray.travel.config.Config;

public class MailUtils {
	/**
	 * 简单的发邮件方式    邮件内容只有标题和邮件内容  支持多个用户批量发送
	 * @param subject   邮件标题
	 * @param contents  邮件内容
	 * @param userEmailAddress   收入人的邮件地址  为数组形式
	 * @throws Exception 
	 */
	public static void sendSimpleEmail(String subject,String contents,String [] userEmailAddress,String fromEmailAddress) throws Exception
	{
		Config config = new Config();
	    config.loadProperty();
		SimpleEmail email = new SimpleEmail();
		email.setHostName(Config.getProperty("mailHostName"));
		email.setAuthentication(Config.getProperty("mailHostUserName"),Config.getProperty("mailHostPassword"));
		//发送给多个人
		for(int i=0;i<userEmailAddress.length;i++)
		{
			email.addTo(userEmailAddress[i],userEmailAddress[i]);
		}
		email.setFrom(fromEmailAddress,fromEmailAddress);
		email.setSubject(subject);
		email.setContent(contents, "text/plain;charset=GBK"); 
		email.send();
	}
	
	/**
	 * 发送带附件的邮件方式  邮件内容有标题和邮件内容和附件,附件可以是本地机器上的文本,也可以是web上的一个URL 文件, 
	 * 当为web上的一个URL文件时,此方法可以将WEB中的URL文件先下载到本地,再发送给收入用户
	 * @param subject   邮件标题
	 * @param contents  邮件内容
	 * @param userEmailAddress   收入人的邮件地址  为数组形式
	 * @param multiPaths         附件地址         为数组形式
	 * @throws Exception 
	 * @throws Exception 
	 */
	
	public static void sendMultiPartEmail(String subject,String contents,String [] userEmailAddress,String fromEmailAddress,String []multiPaths) throws Exception
	{
//		MimeUtility.encodeText(filename);   测试中文乱码用的
//		EmailAttachment attachment = new EmailAttachment();
//		attachment.setPath("D:/hibernate培训讲座.ppt");
//		attachment.setDisposition(EmailAttachment.ATTACHMENT);
//		attachment.setDescription("Picture of John");
		List list=new ArrayList();
//		EmailAttachment [] attachmentArray = new EmailAttachment[multiPaths.length];
		for(int j=0;j<multiPaths.length;j++)
		{
			EmailAttachment attachment = new EmailAttachment();
			if(multiPaths[j].indexOf("http")==-1)   //判断当前这个文件路径是否在本地  如果是:setPath  否则  setURL;
			{
			attachment.setPath(multiPaths[j]);
			}
			else
			{
				attachment.setURL(new URL(multiPaths[j]));
			}
			attachment.setDisposition(EmailAttachment.ATTACHMENT);
			attachment.setDescription("Picture of John");
			list.add(attachment);
		}
		//发送邮件信息
		Config config = new Config();
	    config.loadProperty();
	    MultiPartEmail email = new MultiPartEmail();
		email.setHostName(Config.getProperty("mailHostName"));
		email.setAuthentication(Config.getProperty("mailHostUserName"),Config.getProperty("mailHostPassword"));
		//发送给多个人
		for(int i=0;i<userEmailAddress.length;i++)
		{
			email.addTo(userEmailAddress[i],userEmailAddress[i]);
		}
		email.setFrom(fromEmailAddress,fromEmailAddress);
		email.setSubject("The picture");
		email.setMsg(contents);   //注意这个不要使用setContent这个方法  setMsg不会出现乱码
		for(int a=0;a<list.size();a++)   //添加多个附件
		{
			 email.attach((EmailAttachment)list.get(a));
		}
//	    email.attach(attachment);
		email.send();
	}
	
	/**
	 * 发送Html格式的邮件
	 * @param subject   邮件标题
	 * @param contents  邮件内容
	 * @param userEmailAddress  接收用户的邮箱地址
	 * @param fromEmailAddress  发送人的邮箱地址
	 *        
	 * @throws Exception
	 */
	public static void sendHtmlEmail(String subject,String contents,String [] userEmailAddress,String fromEmailAddress) throws Exception
	{
		Config config = new Config();
	    config.loadProperty();
	    HtmlEmail email = new HtmlEmail();
		email.setHostName(Config.getProperty("mailHostName"));
		email.setAuthentication(Config.getProperty("mailHostUserName"),Config.getProperty("mailHostPassword"));
		//发送给多个人
		for(int i=0;i<userEmailAddress.length;i++)
		{
			email.addTo(userEmailAddress[i],userEmailAddress[i]);
		}
		email.setFrom(fromEmailAddress,fromEmailAddress);
		email.setSubject(subject);
		email.setHtmlMsg(contents);
		email.setTextMsg(contents);
		email.send();
	}
	/**
	 * 统一的发送邮件的方法   调用时一定要实例化EmailBean对象   
	 * @throws Exception 
	 *
	 */
	public static void sendEmail(EmailBean bean) throws Exception
	{
		if(bean.isHaveMultPaths())
		{
			sendMultiPartEmail(bean.getSubject(),bean.getContents(),bean.getUserEmailAddress(),bean.getFromEmailAddress(),bean.getMultiPaths());
		}
		else
		{
			sendSimpleEmail(bean.getSubject(),bean.getContents(),bean.getUserEmailAddress(),bean.getFromEmailAddress());
		}
	}
}
分享到:
评论

相关推荐

    最新commons-email-1.2.jar

    commons-email封装了邮件发送权限处理,AuthenticationFailedException错误可以解决了

    commons-email-1.1-src.zip

    标题“commons-email-1.1-src.zip”表明这是一个关于Apache Commons Email库的源代码压缩包,版本为1.1。Apache Commons Email是一个Java库,它提供了简单和直接的方式来创建电子邮件,包括HTML邮件、多部分邮件以及...

    使用Apache-commons-email发送邮件

    首先,要使用Apache Commons Email,我们需要在项目中引入其依赖。如果是Maven项目,可以在pom.xml文件中添加如下依赖: ```xml &lt;groupId&gt;commons-email &lt;artifactId&gt;commons-email &lt;version&gt;1.5 ``` 接下来...

    commons-dbutils-1.7.jar

    Apache Commons DBUtils是一款在Java编程中广泛使用的数据库操作工具库,它的全称为“Apache Commons Database Utilities”。这个小巧且高效的库为开发者提供了方便、安全的数据库访问接口,降低了处理数据库连接、...

    commons-email

    使用Apache Commons Email,开发者可以避免直接处理复杂的JavaMail API,减少代码量,提高代码可读性和可维护性。例如,发送一封简单的文本邮件只需几行代码: ```java import org.apache.commons.mail.*; Email ...

    commons-email-1.0

    Commons Email 封装了 JavaMail 的部分功能,提供了简洁易用的接口,使得邮件的创建、配置和发送变得更加直观和高效。 在 Commons Email 1.0 中,主要包含以下几个核心知识点: 1. **邮件构建**:你可以使用预定义...

    commons-eamil和commons-fileupload包

    以下是一段简单的使用`commons-email`发送邮件的代码示例: ```java import org.apache.commons.mail.*; Email email = new SimpleEmail(); email.setSmtpPort(587); email.setDebug(true); email.setFrom("you@...

    commons-dbutils-1.3-bin

    Apache Commons DBUtils是Java开发中一个非常实用的数据库操作库,它简化了JDBC(Java Database Connectivity)的使用,提供了一种更安全、更高效的方式来处理数据库操作。这个"commons-dbutils-1.3-bin"压缩包包含...

    使用javamail,commons-mail发送邮件实例

    4. **构建邮件**:使用`Commons-Mail`的`Email`类创建邮件实例,设置收件人、发件人、主题和正文: ```java Email email = new SimpleEmail(); email.setFrom("your-email@example.com"); email.setSubject(...

    common email 附件发送

    以上就是使用Java结合Apache Commons Email和JavaMail API发送带附件的电子邮件的基本流程。开发者可以根据实际需求对邮件内容、附件类型和邮件服务器配置进行更复杂的定制。在实际项目中,为了提高代码的可读性和可...

    commons-email-scala-helper:Commons Email 上的 Scala 包装器,用于更舒适的消息发送

    总的来说,`commons-email-scala-helper` 是为了提升 Scala 开发者使用 Apache Commons Email 的体验而设计的,它封装了底层的 Java API,提供了更加符合 Scala 语言特性的接口,使得编写和管理邮件发送代码变得更加...

    commons_mail.jar

    使用`commons-email-1.2.jar`,开发者可以轻松地实现复杂邮件功能,例如HTML邮件、多部分邮件(包含文本和HTML版本)、添加附件、设置抄送和密送收件人等。`HtmlEmail`是Apache Commons Email库中的一个关键类,它...

    Java开发常用jar包

    1.commons-beanutils.jar...12.commons-DbUtils.jar:Apache组织提供的一个资源JDBC工具类库,它是对JDBC的简单封装,对传统操作数据库的类进行二次封装,可以把结果集转化成List。 13.commons-Email.jar: 提供开源的API

    OSChina 所有jar

    8 commons-email-1.2.jar 邮件发送包 9 commons-httpclient-3.1.jar HTTP客户端 10 commons-io-1.4.jar IO处理包 11 commons-lang-2.4.jar 语言处理包 12 commons-logging-1.1.1.jar 日志包 13 cos.jar 文件...

    Commons: 封装Apache Commons Email简化邮件发送

    在本文中,我们将详细探讨Apache Commons Email的使用方法和核心特性。 首先,Apache Commons Email提供了多种构造邮件的方法,包括创建简单文本邮件、HTML邮件、带有附件的邮件等。例如,你可以通过`SimpleEmail`...

    Apache Commons Mail 封装发送邮件类

    在JavaMail中,配置和使用邮件服务可能相对复杂,而Apache Commons Mail则通过提供预定义的邮件实现和简单易用的接口来解决了这个问题。 **Apache Commons Mail基本概念** 1. **邮件组件**:Apache Commons Mail ...

    jsp邮件发送

    commons-email是apache提供的一个开源的API,是对javamail的封装,因此在使用时要将javamail.jar加到 class path中,主要包括SimpleEmail,MultiPartEmail,HtmlEmail,EmailAttachment四个类。 HtmlEmail:HTML格式邮件...

    java 工具类-----email

    对于更复杂的应用场景,还可以使用开源库,如Apache Commons Email或Spring框架中的MailSender,它们提供了更友好的API来简化邮件发送操作。 在提供的标签"源码 工具"中,我们可以理解到,深入学习和理解JavaMail ...

    java 发送Email 需要的包

    再者,`commons-email-1.2.jar`是Apache Commons Email项目的一部分,它为JavaMail提供了一个更高级、更易于使用的封装。Apache Commons Email提供了一些便利的类和方法,使得编写邮件发送代码更加直观。例如,你...

Global site tag (gtag.js) - Google Analytics