`
小网客
  • 浏览: 1215954 次
  • 性别: 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工具类实现邮箱发送验证码

    Java通过Apache提供的Commons Email工具类实现邮箱发送验证码功能,代码附详细注释文本,实现方法中附有验证码生成方法

    大名鼎鼎的 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包

    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; ...

    新版Android开发教程.rar

    � Google 提供了一套 Java 核心包 (J2SE 5,J2SE 6) 的有限子集,尚不承诺遵守 Java 任何 Java 规范 , 可能会造 成J ava 阵营的进一步分裂。 � 现有应用完善度不太够,需要的开发工作量较大。--------------------...

    Spring主流jar包大全

    activiti-common-rest-5.21.0.jar activiti-crystalball-5.21.0.jar activiti-diagram-rest-5.21.0.jar activiti-engine-5.21.0.jar activiti-explorer-5.21.0.jar activiti-image-generator-5.21.0.jar activiti-...

    InstallAnywhere v5.5.1--专业、强大的安装工具

    摘要 用于制作应用软件的安装程序,支持任何开发平台,灵活性强,性能突出,对JAVA程序的支持也相当完善。 组件列表 技术特性 &#9830;;;;&nbsp;;;;通用安装、配置和客户化 ·在终端用户的系统上,将文件和...

    Innovation Happens Elsewhere_ Open Source as Business Strategy.pdf

    of the Common Lisp Group, which is the first, large-scale, email-based design effort; this group worked from 1981 until the early 1990s. The same author 2 founded Lucid, Inc, one of whose products~...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    据我所知,JSP基于Java,因此Java程序员可以轻松开始编码。ASP只是一个一般的引擎,具有支持多种语言的能力,不过默认的并且是最常用的还是VBScript。 mod_perl与Perl一样强大,只是更快一些。 二、PHP入门 PHP...

    spring-boot-reference.pdf

    32.3. Apache Kafka Support 32.3.1. Sending a Message 32.3.2. Receiving a Message 32.3.3. Additional Kafka Properties 33. Calling REST Services with RestTemplate 33.1. RestTemplate Customization 34. ...

    Mahout in Action

    Java and IDEs 7 ■ Installing Maven 8 ■ Installing Mahout 8 ■ Installing Hadoop 9 1.5 Summary 9 PART 1 RECOMMENDATIONS...........................................11 2 Introducing recommenders 13 2.1 ...

Global site tag (gtag.js) - Google Analytics