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

使用apache commons email 发送带附件邮件(可中文)

阅读更多

Java Mail 实在难用,伤不起,发现个简单方便的邮件组件,在Java Mail的基础上又包了一层,代码如下:附件可以是中文

(有问题和意见的欢迎拍砖)

 

 

package com.richmobi.util;

import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URLDecoder;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import javax.mail.internet.MimeUtility;

import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.log4j.Logger;

/**
	 * 创建日期:2011-12-14
	 * Title: 邮件发送工具类
	 * Description:对本文件的详细描述,原则上不能少于50字
	 * @author hongliang.wang
	 * @mender:(文件的修改者,文件创建者之外的人)
	 * @version 1.0
	 * Remark:认为有必要的其他信息
 */
public class SendMailUtil {
	
	private static final Logger log = Logger.getLogger(SendMailUtil.class);
	private static ExecutorService executor;
	
	static{
		executor = Executors.newFixedThreadPool(50);
	}

	/**
	 * 功能:发送邮件 
	 * 作者: hongliang.wang
	 * 创建日期:2011-12-14
	 * 修改者: mender
	 * 修改日期: modifydate
	 * @param mialTitle 邮件主题
	 * @param attachPath 附件地址
	 * @param attachName 附件显示名称
	 * @param toEmail 收件人
	 * @param mailContent 邮件内容
	 * @throws MalformedURLException 
	 * @throws UnsupportedEncodingException 
	 * @throws EmailException 
	 */
	public static  void sendEmail(final String mialTitle,final String attachPath,final String attachName,final String toEmail,final String mailContent) throws MalformedURLException, UnsupportedEncodingException, EmailException{
		final String mailServer = Configer.get("smtpServer");
		final String mailName = Configer.get("mailName");
		final String mailPwd = Configer.get("mailPassword");
		
		
		
		executor.execute(new Runnable(){
			public void run() {
				EmailAttachment  attachment = null;
				if(attachPath!=null){
					attachment = new EmailAttachment();
					try {
						attachment.setPath(attachPath);
						attachment.setName(MimeUtility.encodeText(attachName));
						attachment.setDisposition(EmailAttachment.ATTACHMENT);
						attachment.setDescription("Picture of John");
					}catch (UnsupportedEncodingException e) {
						e.printStackTrace();
						log.info(e.getMessage());
					}
				}
				
				HtmlEmail email = new HtmlEmail();//可以发送html类型的邮件   
				email.setHostName(mailServer);//指定要使用的邮件服务器   
				email.setAuthentication(mailName, mailPwd);//使用163的邮件服务器需提供在163已注册的用户名、密码   
				email.setCharset("UTF-8");     
				try {
					email.setFrom(mailName,"GMIC2012");
					//设置发件人   
					email.addTo(toEmail);//设置收件人   
					email.setSubject(mialTitle);//设置主题 
					email.setHtmlMsg((mailContent==null||"".equals(mailContent))?"":mailContent);//可以发送html
					if(attachPath!=null){
						email.attach(attachment);
					}
					log.info("mailServer:"+Configer.get("smtpServer")+"mailTo: "+ toEmail);
					log.info("邮件正文:"+mailContent);
					email.send();
				} catch (EmailException e) {
					e.printStackTrace();
					log.info(e.getMessage());
				}
			}
		});
	}
	
	public static void main(String[] args) throws MalformedURLException, UnsupportedEncodingException, EmailException {
		String fileName = "Nginx配置.doc";
		String path = URLDecoder.decode(SendMailUtil.class.getClassLoader().getResource("info"+File.separator+fileName).toString(),"utf-8").replaceAll("file:/", "");
		
		SendMailUtil.sendEmail("测试中文",path, fileName,"68644421@qq.com", "测试正文");
	}
}


 

注:Config 是自己写的工具类,邮件发送需要的参数都写在config.properties 。

 

1
0
分享到:
评论
2 楼 wanghlwin 2012-06-14  
xyang81 写道
使用javamail发送带中文的附件也是很简单的,设置附件的文件名时,使用javax.mail.internet.MimeUtility的encodeText()方法对文件名编码即可.

好的 谢谢分享 个人认为,commons email只是相对操作简单写,不过功能方面确实没有java email 的api强大,不过日常的一般发邮件功能都可以应付了。
1 楼 xyang81 2012-06-09  
使用javamail发送带中文的附件也是很简单的,设置附件的文件名时,使用javax.mail.internet.MimeUtility的encodeText()方法对文件名编码即可.

相关推荐

    使用Apache-commons-email发送邮件

    Apache Commons Email库是Apache软件基金会的Apache Commons项目的一部分,它提供了多种邮件服务的功能,如添加附件、设置HTML内容、发送多部分邮件等。在`SendMail.java`这个示例文件中,我们很可能会看到如何使用...

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

    在发送带有附件的邮件时,Apache Commons Email的`MultiPartEmail`类就派上用场了。你可以添加多个文件作为附件,无论是文本、图片、PDF还是其他类型的文件,都可以轻松处理。此外,该库还支持发送带有内嵌图片的...

    新版邮件编程---Apache Commons Email

    Apache Commons Email是一个强大的Java库,专门用于简化电子邮件的创建和发送。这个库是Apache软件基金会的一个项目,旨在提供一个简单、直接的API,使得开发者在处理邮件相关的编程任务时能够更加便捷。Apache ...

    commons email 发送html邮件完整优化实例

    在这个“commons email 发送html邮件完整优化实例”中,我们将深入探讨如何利用Apache Commons Email高效、稳定地发送带有HTML内容的邮件。 首先,我们需要在项目中引入Apache Commons Email的依赖。如果你使用的是...

    Java通过Apache提供的Commons Email工具类实现邮箱发送验证码

    本篇将深入讲解如何使用Apache Commons Email工具类来发送带有验证码的电子邮件。 首先,Apache Commons Email是Apache软件基金会的一个项目,它提供了一组丰富的API,简化了Java中发送电子邮件的过程。这个库包含...

    Apache Commons Mail 封装发送邮件类

    1. **邮件组件**:Apache Commons Mail 提供了多个预定义的邮件组件,如 `SimpleEmail`、`MultiPartEmail` 和 `HtmlEmail`,分别用于发送纯文本、多部分(混合内容,如文本和附件)以及HTML格式的邮件。 2. **SMTP...

    commons-email发送邮件

    Apache Commons Email 是一个Java库,专门用于简化电子邮件的发送。这个库是Apache Commons项目的一部分,提供了许多方便的API,使得开发者能够轻松地构建并发送包含文本、HTML内容以及附件的邮件。下面我们将深入...

    java邮件发送例子 apache email demo

    在这个例子中,我们将深入探讨如何使用Apache Commons Email库在Java中实现邮件发送。 首先,你需要在项目中引入Apache Commons Email的依赖。如果是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml ...

    commons-email-1.5.jar

    《Android应用中使用Apache Commons Email库发送邮件》 在Android应用程序开发中,有时我们需要集成邮件发送功能,以便向用户发送验证码、通知或者提供其他服务。Apache Commons Email库是一个强大的Java库,它简化...

    邮件发送--commons-email-1.4.jar

    在描述中提到的"实现过程文章的连接"可能指向一篇教程或指南,该指南详细解释了如何使用Apache Commons Email库来发送邮件,包括设置服务器参数、添加附件、处理异常等。这样的资源对初学者非常有帮助,能够让他们...

    apache.commons全套jar包下载

    6. Apache Commons Email: 这个模块使得发送电子邮件变得非常简单,支持HTML邮件、附件、多部分消息以及SMTP认证等功能。 这些jar包是许多Java项目中不可或缺的部分,尤其在处理系统级任务或提高代码可复用性时。...

    Apache Commons工具集

    9. **Email**: Commons Email 提供了一个简单的API来发送电子邮件,支持HTML邮件、附件等。 10. **Execute**: 这个组件提供了一种执行外部进程并管理其生命周期的方式。 在实际开发中,Apache Commons工具集大大...

    Apache Commons 包的使用

    - **简介**:Apache Commons Email 是一个用于创建和发送电子邮件的库,它基于 JavaMail API 提供了一层更简洁的接口。 - **功能**:支持发送纯文本邮件、带有附件的纯文本邮件以及包含 HTML 内容的邮件。 - **...

    用commons-email-1.2.jar实现发邮件功能

    在Java编程中,发送电子邮件是一项常见的任务,Apache Commons Email库为开发者提供了便利的API来实现这一功能。本篇文章将详细讲解如何使用`commons-email-1.2.jar`这个开源库来实现邮件发送,并通过`...

    Java Mail和Commons-email发简单的邮件所用到的jar包

    JavaMail和Apache Commons Email是Java平台上用于发送电子邮件的两个重要库。这两个库为开发者提供了方便的API,使得在Java应用程序中实现邮件发送功能变得简单易行。以下将详细阐述这两个库以及它们所需的jar包。 ...

    Java发送邮件 --- Apache Commns email

    接下来,我们将深入探讨如何使用Apache Commons Email来实现邮件的发送。 1. **Apache Commons Email简介** Apache Commons Email是Apache软件基金会开发的一个组件,属于Apache Commons项目的一部分。它提供了一组...

    使用apche-commons-email例子

    email.setMsg("这是一个使用Apache Commons Email发送的示例邮件。"); // 设置SMTP服务器信息 email.setSmtpPort(587); // 大多数SMTP服务器使用此端口 email.setSSLCheckServerIdentity(true); email....

    commons-email-1.4.jar

    这个名为"commons-email-1.4.jar"的文件是Apache Commons Email 1.4版本的库,它是Java开发者用于发送电子邮件的强大工具。 Apache Commons Email库的核心特性包括: 1. **简单易用的API**:Apache Commons Email ...

    commons email,另附所需框架,导入即可

    Apache Commons Email 是一个Java库,专门用于简化电子邮件的创建和发送。这个库是Apache Commons项目的一部分,它提供了许多实用工具和方法,使得开发者在处理电子邮件时可以避免直接操作复杂的JavaMail API。...

    common email 附件发送

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

Global site tag (gtag.js) - Google Analytics