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 。
分享到:
相关推荐
Apache Commons Email库是Apache软件基金会的Apache Commons项目的一部分,它提供了多种邮件服务的功能,如添加附件、设置HTML内容、发送多部分邮件等。在`SendMail.java`这个示例文件中,我们很可能会看到如何使用...
在发送带有附件的邮件时,Apache Commons Email的`MultiPartEmail`类就派上用场了。你可以添加多个文件作为附件,无论是文本、图片、PDF还是其他类型的文件,都可以轻松处理。此外,该库还支持发送带有内嵌图片的...
Apache Commons Email是一个强大的Java库,专门用于简化电子邮件的创建和发送。这个库是Apache软件基金会的一个项目,旨在提供一个简单、直接的API,使得开发者在处理邮件相关的编程任务时能够更加便捷。Apache ...
在这个“commons email 发送html邮件完整优化实例”中,我们将深入探讨如何利用Apache Commons Email高效、稳定地发送带有HTML内容的邮件。 首先,我们需要在项目中引入Apache Commons Email的依赖。如果你使用的是...
本篇将深入讲解如何使用Apache Commons Email工具类来发送带有验证码的电子邮件。 首先,Apache Commons Email是Apache软件基金会的一个项目,它提供了一组丰富的API,简化了Java中发送电子邮件的过程。这个库包含...
1. **邮件组件**:Apache Commons Mail 提供了多个预定义的邮件组件,如 `SimpleEmail`、`MultiPartEmail` 和 `HtmlEmail`,分别用于发送纯文本、多部分(混合内容,如文本和附件)以及HTML格式的邮件。 2. **SMTP...
Apache Commons Email 是一个Java库,专门用于简化电子邮件的发送。这个库是Apache Commons项目的一部分,提供了许多方便的API,使得开发者能够轻松地构建并发送包含文本、HTML内容以及附件的邮件。下面我们将深入...
在这个例子中,我们将深入探讨如何使用Apache Commons Email库在Java中实现邮件发送。 首先,你需要在项目中引入Apache Commons Email的依赖。如果是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml ...
《Android应用中使用Apache Commons Email库发送邮件》 在Android应用程序开发中,有时我们需要集成邮件发送功能,以便向用户发送验证码、通知或者提供其他服务。Apache Commons Email库是一个强大的Java库,它简化...
在描述中提到的"实现过程文章的连接"可能指向一篇教程或指南,该指南详细解释了如何使用Apache Commons Email库来发送邮件,包括设置服务器参数、添加附件、处理异常等。这样的资源对初学者非常有帮助,能够让他们...
6. Apache Commons Email: 这个模块使得发送电子邮件变得非常简单,支持HTML邮件、附件、多部分消息以及SMTP认证等功能。 这些jar包是许多Java项目中不可或缺的部分,尤其在处理系统级任务或提高代码可复用性时。...
9. **Email**: Commons Email 提供了一个简单的API来发送电子邮件,支持HTML邮件、附件等。 10. **Execute**: 这个组件提供了一种执行外部进程并管理其生命周期的方式。 在实际开发中,Apache Commons工具集大大...
- **简介**:Apache Commons Email 是一个用于创建和发送电子邮件的库,它基于 JavaMail API 提供了一层更简洁的接口。 - **功能**:支持发送纯文本邮件、带有附件的纯文本邮件以及包含 HTML 内容的邮件。 - **...
在Java编程中,发送电子邮件是一项常见的任务,Apache Commons Email库为开发者提供了便利的API来实现这一功能。本篇文章将详细讲解如何使用`commons-email-1.2.jar`这个开源库来实现邮件发送,并通过`...
JavaMail和Apache Commons Email是Java平台上用于发送电子邮件的两个重要库。这两个库为开发者提供了方便的API,使得在Java应用程序中实现邮件发送功能变得简单易行。以下将详细阐述这两个库以及它们所需的jar包。 ...
接下来,我们将深入探讨如何使用Apache Commons Email来实现邮件的发送。 1. **Apache Commons Email简介** Apache Commons Email是Apache软件基金会开发的一个组件,属于Apache Commons项目的一部分。它提供了一组...
email.setMsg("这是一个使用Apache Commons Email发送的示例邮件。"); // 设置SMTP服务器信息 email.setSmtpPort(587); // 大多数SMTP服务器使用此端口 email.setSSLCheckServerIdentity(true); email....
这个名为"commons-email-1.4.jar"的文件是Apache Commons Email 1.4版本的库,它是Java开发者用于发送电子邮件的强大工具。 Apache Commons Email库的核心特性包括: 1. **简单易用的API**:Apache Commons Email ...
Apache Commons Email 是一个Java库,专门用于简化电子邮件的创建和发送。这个库是Apache Commons项目的一部分,它提供了许多实用工具和方法,使得开发者在处理电子邮件时可以避免直接操作复杂的JavaMail API。...
以上就是使用Java结合Apache Commons Email和JavaMail API发送带附件的电子邮件的基本流程。开发者可以根据实际需求对邮件内容、附件类型和邮件服务器配置进行更复杂的定制。在实际项目中,为了提高代码的可读性和可...