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

Java通过apache的common包发送email

 
阅读更多

场景:

发送email

 

依赖:

<dependencies>
	<dependency>
		<groupId>junit</groupId>
		<artifactId>junit</artifactId>
		<version>4.4</version>
		<scope>test</scope>
	</dependency>
	<dependency>
		<groupId>org.apache.commons</groupId>
		<artifactId>commons-email</artifactId>
		<version>1.2</version>
		<scope>compile</scope>
	</dependency>
	<dependency>
		<groupId>commons-io</groupId>
		<artifactId>commons-io</artifactId>
		<version>2.1</version>
		<scope>compile</scope>
	</dependency>
</dependencies>

 

实现:

基于commons-email

SimpleEmail:普通文本格式邮件

MultiPartEmail:附件+普通文本格式邮件

HtmlEmail:MultiPartEmail的子类,附件+HTML格式邮件

代码:

private static final Logger logger = Logger.getLogger(EmailTest.class.getName());
private static final String emailServer = "smtp.163.com";
private static final String emailServerUserEmail = "xxx@163.com";
private static final String emailServerUserName = "xx";

private static final String emailServerUserPassword = "pwd";
private static final String emailEncoding = "utf-8";

public void testSimpleEmail(String toEmail, String toName, String subject, String msg) {
	try {
		SimpleEmail email = new SimpleEmail();
		email.setHostName(EmailTest.emailServer);
		email.setAuthentication(EmailTest.emailServerUserName,
			EmailTest.emailServerUserPassword);
		email.setCharset(EmailTest.emailEncoding);
		email.setSubject("testSimpleEmail:"+subject);
		email.setMsg(msg);
		email.setFrom(EmailTest.emailServerUserEmail);
		email.addTo(toEmail, toName);
		String messageId = email.send();
		logger.info("*testSimpleEmail:" + messageId);
	} catch (Exception e) {
		e.printStackTrace();
		throw new RuntimeException(e);
	}
}

public void testMultiPartEmail(String toEmail, String toName, String attachmentPath,
	String subject, String msg) {
	String attachmentText = FilenameUtils.getName(attachmentPath);

	try {
		EmailAttachment emailAttachment = new EmailAttachment();
		emailAttachment.setPath(attachmentPath);
		emailAttachment.setDisposition(EmailAttachment.ATTACHMENT);
		emailAttachment.setDescription(attachmentText);
		emailAttachment.setName(MimeUtility.encodeText(attachmentText));

		MultiPartEmail email = new MultiPartEmail();
		email.setHostName(emailServer);
		email.setAuthentication(EmailTest.emailServerUserEmail,
			EmailTest.emailServerUserPassword);
		email.setCharset(emailEncoding);
		email.addTo(toEmail, toName);
		email.setFrom(EmailTest.emailServerUserEmail, EmailTest.emailServerUserName);
		email.setSubject("testMultiPartEmail:"+subject);
		email.setMsg(msg);
		email.attach(emailAttachment);
		String messageId = email.send();
		logger.info("*testMultiPartEmail:" + messageId);
	} catch (Exception e) {
		e.printStackTrace();
		throw new RuntimeException(e);
	}
}

public void testHtmlEmail(String toEmail, String toName, String attachmentPath,
	String subject, String msg){
	String attachmentText = FilenameUtils.getName(attachmentPath);
	try {
		EmailAttachment emailAttachment = new EmailAttachment();
		emailAttachment.setPath(attachmentPath);
		emailAttachment.setDisposition(EmailAttachment.ATTACHMENT);
		emailAttachment.setDescription(attachmentText);
		emailAttachment.setName(MimeUtility.encodeText(attachmentText));
		
	HtmlEmail email = new HtmlEmail();
	email.setHostName(emailServer);
	email.setAuthentication(EmailTest.emailServerUserName, EmailTest.emailServerUserPassword);
	email.setCharset(emailEncoding);
	email.addTo(toEmail); 
	email.setFrom(EmailTest.emailServerUserEmail, EmailTest.emailServerUserName);
	email.setSubject("testHtmlEmail:"+subject);
	email.attach(emailAttachment);
	email.setHtmlMsg(msg);
	
	String messageId = email.send();
	logger.info("*testHtmlEmail:" + messageId);
} catch (Exception e) {
	e.printStackTrace();
	throw new RuntimeException(e);
}
}


public static void main(String[] args) {
	EmailTest test = new EmailTest();
	String attachmentPath = "G:/hexun.rar";
	String subject = "公司通知";
	String msg = "hi <br/> 好消息! <br/> 今天天气挺好的适合运动 !";
	String toEmail = "toemail@163.com";
	String toName = "toemail";
	try {
		test.testHtmlEmail(toEmail, toName, attachmentPath, subject, msg);
		test.testMultiPartEmail(toEmail, toName, attachmentPath, subject, msg);
		test.testSimpleEmail(toEmail, toName, subject, msg);
	} catch (Exception e) {
		e.printStackTrace();
	}

}

 

4
1
分享到:
评论
7 楼 小网客 2013-11-05  
流程比较简单就没写,方法注释是删过的
柏油路上的行者 写道
能写点注释么?

6 楼 柏油路上的行者 2013-11-05  
能写点注释么?
5 楼 小网客 2013-11-05  
sawadari_k 写道
小网客 写道
sawadari_k 写道
给楼主提个建议,多写点你的想法。

比如?

你决定做这个东西,为什么要做?之类的。

ok 我还以为要听个人对这个行业 架构 生活所得等方面的东西呢
4 楼 sawadari_k 2013-11-04  
小网客 写道
sawadari_k 写道
给楼主提个建议,多写点你的想法。

比如?

你决定做这个东西,为什么要做?之类的。
3 楼 sosojustdo 2013-11-04  
个人感觉比JavaMail使用起来简单多了,我估计CommonEmail底层是对JavaMail做了封装吧。
2 楼 小网客 2013-11-04  
sawadari_k 写道
给楼主提个建议,多写点你的想法。

比如?
1 楼 sawadari_k 2013-11-04  
给楼主提个建议,多写点你的想法。

相关推荐

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

    总之,Apache Commons Email为Java开发者提供了一个强大且易于使用的邮件发送工具,通过简单的代码即可实现包括发送验证码在内的各种邮件功能。在实际开发中,结合业务需求进行适当的优化和扩展,可以极大地提升开发...

    通过 Apache 的 Jarkata Common Email 来发送email

    Apache Jakarta Common Email 是一个强大的Java库,用于创建和发送电子邮件。这个库提供了丰富的功能,使得在Java应用程序中处理电子邮件变得更加简单。在这个项目中,我们将深入探讨如何使用Common Email库来发送...

    common email 附件发送

    `commons-email-1.2.jar`是Apache Commons Email库的一部分,它提供了一个高级接口来简化Java中的电子邮件发送。这个库包含了创建、配置和发送电子邮件的所有必要功能,包括添加附件、设置主题、正文以及处理抄送和...

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

    Apache Commons Email 是一个Java库,专门用于简化电子邮件的发送。这个库提供了丰富的API,使得开发者可以轻松地构建和发送各种类型的邮件,包括HTML格式的邮件。在这个“commons email 发送html邮件完整优化实例”...

    Jarkata Common Email

    Jakarta Common Email 是 Apache 软件基金会下的一个开源项目,它为 Java 应用程序提供了一套全面的 API,使得发送、接收和处理电子邮件变得简单易行。在本文中,我们将深入探讨 Jakarta Common Email 的核心概念、...

    common-mail包

    总的来说,`common-mail`包及其扩展Apache Commons Email为Java开发者提供了一套强大的邮件处理工具,帮助他们实现各种复杂的邮件功能,如发送带附件的邮件、HTML格式的邮件、群发邮件等。正确理解和使用这些库,...

    大名鼎鼎的 java2s 静态网页打包下载

    http://www.java2s.com/ 大名鼎鼎的 java2s 静态网页打包下载 我只是知识的搬运工,版权归属原作者。 是全面学习java不可多得的素材,代码复制粘贴都可运行。...37. Apache Common 38. Ant 39. JUnit

    commons-email jar

    org.apache.commons.mail org.apache.commons.mail.util org.apache.commons.mail.resolver apache commons包

    commonmail

    这个库是"common"包的一部分,它通过提供简洁的API,使得开发者能够用相对较少的代码来实现邮件的发送和其他相关功能。"common mail"标签明确了这个库在IT领域中的定位,即一个通用的邮件处理工具。 在"common-...

    testci-common-email:创建回购

    我们可以推测,testci-common-email库可能使用了Java的邮件API(JavaMail API)或者其他第三方库,如Apache Commons Email,来实现电子邮件的处理功能。 考虑到提供的压缩包子文件名"testci-common-email-main",这...

    commons-lib

    9. **Email**:发送电子邮件的工具包,支持HTML邮件、附件等功能。 10. **Validator**:提供数据验证框架,可以自定义验证规则。 这些组件在实际开发中有着广泛的应用,如在构建Web应用、处理文件、网络通信、数据...

    apache+resin配置[定义].pdf

    而Resin则是一款能够高效处理Java Servlet/JSP的服务器软件,尽管它也能处理静态资源,但在性能上相较于Apache略显逊色。因此,结合Apache和Resin的优点,将Apache用于处理静态资源,Resin用于处理动态资源(如JSP和...

    javaweb项目中常用的jar包详解.pdf

    12. Commons-fileupload.jar:这是一个 Apache 的上传文件工具包,提供了文件上传的功能。 13. Commons-httpclient.jar:这是一个提供高效、最新的 HTTP 客户端工具包,支持最新的版本和建议。 14. Commons-io.jar...

    Java面试题

    在IT行业中,Java开发者面试前的准备工作非常重要,而一份详细的面试题集往往能帮助应聘者更好地梳理和复习相关的知识点。现根据提供的文件内容,对Java...通过学习这些知识点,应聘者可以更好地准备Java相关的面试。

    Spring包的依赖关系

    Spring在文件上传处理和email发送中可使用COS,但并非唯一选择。仅当选用COS作为实现方式时,才需包含cos.jar。 ### 7. DOM4j - **JAR文件**: dom4j.jar - **说明**: 当使用Hibernate时,DOM4j是必需的。如果应用...

    iBatis-设置缓存模式-Java源码(下载)

    &lt;result property="emailAddress" column="ACC_EMAIL"/&gt; &lt;/resultMap&gt; &lt;cacheModel id="categoryCache" type="LRU"&gt; &lt;flushInterval hours="24"/&gt; &lt;property name="size" value="100"/&gt; ...

    solrj的使用

    SolrJ是Apache Solr官方提供的Java客户端库,它使得在Java应用程序中与Solr服务器进行交互变得简单。Solr是流行的全文搜索引擎,提供高效、可扩展的搜索和分析功能。通过SolrJ,开发者可以方便地进行索引文档、查询...

    服务器部署1

    在Ubuntu上安装Elasticsearch 5.1,可以通过添加PPA(个人包档案)并使用`apt-get`命令来完成: ```bash sudo apt-get install python-software-properties sudo apt-get install software-properties-common sudo ...

    webservice 简单配置

    如果你需要这些额外的功能,可以将相应的JAR包(如 `email.jar`)放置在Tomcat的 `common\lib` 目录下。 #### 二、发布WebService 发布WebService有两种主要方式:**DynamicInvocationInterface (DII)** 和 **...

Global site tag (gtag.js) - Google Analytics