知道有它几个class吗?你一定想不到,只有8个!
好了,开始我们的jakarta commons emails 之旅:)
一:Quick Start
通过SimpleEmail发送邮件
1java.lang.Object
2 org.apache.commons.mail.Email
3 org.apache.commons.mail.SimpleEmail
2 org.apache.commons.mail.Email
3 org.apache.commons.mail.SimpleEmail
1SimpleEmail email = new SimpleEmail();
2email.setHostName("mail.4ya.cn");
3email.setAuthentication("<username>","<password>")
4email.addTo("martin.xus@gmail.com", "martin");
5email.setFrom("martin@4ya.cn", "martin");
6email.setSubject("测试主题");
7email.setMsg("这里是邮件内容");
8email.send();
2email.setHostName("mail.4ya.cn");
3email.setAuthentication("<username>","<password>")
4email.addTo("martin.xus@gmail.com", "martin");
5email.setFrom("martin@4ya.cn", "martin");
6email.setSubject("测试主题");
7email.setMsg("这里是邮件内容");
8email.send();
就如代码里字面上的意思一样简单:
1:创建以SimpleEmail对象
2:设定发送信件的smtp服务器,如果没有设定,会寻找系统变量中mail.host值。
3:设定smtp的用户和密码
4:收件人
5:发件人
6:主题
7:内容
8:发送
二:发送带附件的邮件
我们可以发送本机的附件,当然我们也可以发送非本机的附件,如果发送的是一个存在网络上的附件的url,则邮件发送的时候会自动下载,添加到附件中。
1:)发送本地附件:
1EmailAttachment attachment = new EmailAttachment();
2attachment.setPath("test/test.rar");
3attachment.setDisposition(EmailAttachment.ATTACHMENT);
4attachment.setDescription("python resource");
5attachment.setName("resource");
2attachment.setPath("test/test.rar");
3attachment.setDisposition(EmailAttachment.ATTACHMENT);
4attachment.setDescription("python resource");
5attachment.setName("resource");
2:)发送不存在本地的附件
1EmailAttachment attachment = new EmailAttachment();
2attachment.setURL(new URL("http://www.smilinglibrary.org/sldoc/pics/index03.jpg"));
3attachment.setDisposition(EmailAttachment.ATTACHMENT);
4attachment.setDescription("微笑图书馆");
5attachment.setName("微笑图书馆");
2attachment.setURL(new URL("http://www.smilinglibrary.org/sldoc/pics/index03.jpg"));
3attachment.setDisposition(EmailAttachment.ATTACHMENT);
4attachment.setDescription("微笑图书馆");
5attachment.setName("微笑图书馆");
next,添加附件到我们的邮件中
1MultiPartEmail email = new MultiPartEmail();
2email.setHostName("mail.4ya.cn");
3 email.setAuthentication("<username>","<password>")
4email.addTo("martin.xus@gmail.com", "martin");
5email.setFrom("martin@4ya.cn", "martin");
6email.setSubject("邮件主题");
7email.setMsg("邮件内容");
8//添加附件
9email.attach(attachment);
10
11//发送邮件
12email.send();
2email.setHostName("mail.4ya.cn");
3 email.setAuthentication("<username>","<password>")
4email.addTo("martin.xus@gmail.com", "martin");
5email.setFrom("martin@4ya.cn", "martin");
6email.setSubject("邮件主题");
7email.setMsg("邮件内容");
8//添加附件
9email.attach(attachment);
10
11//发送邮件
12email.send();
如果需要发送多个附件,只需创建多个EmailAttachement,即可
1email.attach(attachment1)
2email.attach(attachment2)
2email.attach(attachment2)
三:发送html格式的邮件
通过HtmlEmail我们可以发送Html格式的邮件:
1java.lang.Object
2 org.apache.commons.mail.Email
3 org.apache.commons.mail.MultiPartEmail
4 org.apache.commons.mail.HtmlEmail
5
2 org.apache.commons.mail.Email
3 org.apache.commons.mail.MultiPartEmail
4 org.apache.commons.mail.HtmlEmail
5
如下:
1//HtmlEmail!
2HtmlEmail email = new HtmlEmail();
3email.setHostName("mail.4ya.cn");
3 email.setAuthentication("<username>","<password>")
5email.addTo("martin@4ya.cn"martin");
6email.setFrom("martin.xus@gmail.com"martin");
7email.setSubject("主题:该邮件包括html格式内容");
8// embed the image and get the content id
9// 注意这里:embed 将帮助我们创建标签如:cid:xxx url
10URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");
11String cid = email.embed(url, "Apache logo");
12
13/**
14set the html message
15我们看到HtmlEmail extends Email的,它依然有setMsg(),但是这里发送的邮件包括了插入在邮件内容中的图片,所以不能在使用了setMsg(),而要以setHtmlMsg 或setTextMsg代码
16**/
17email.setHtmlMsg("<html>The apache logo - <img src="cid:"+cid+""></html>");
18
19// set the alternative message
20email.setTextMsg("Your email client does not support HTML messages");
21
22//set mail
23email.send();
24
2HtmlEmail email = new HtmlEmail();
3email.setHostName("mail.4ya.cn");
3 email.setAuthentication("<username>","<password>")
5email.addTo("martin@4ya.cn"martin");
6email.setFrom("martin.xus@gmail.com"martin");
7email.setSubject("主题:该邮件包括html格式内容");
8// embed the image and get the content id
9// 注意这里:embed 将帮助我们创建标签如:cid:xxx url
10URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");
11String cid = email.embed(url, "Apache logo");
12
13/**
14set the html message
15我们看到HtmlEmail extends Email的,它依然有setMsg(),但是这里发送的邮件包括了插入在邮件内容中的图片,所以不能在使用了setMsg(),而要以setHtmlMsg 或setTextMsg代码
16**/
17email.setHtmlMsg("<html>The apache logo - <img src="cid:"+cid+""></html>");
18
19// set the alternative message
20email.setTextMsg("Your email client does not support HTML messages");
21
22//set mail
23email.send();
24
四:最后一步
如果需要实现更复杂authenticator 你可以extends javax.mail.Authenticator ,实现你自己的东西,然后调用Email.setAuthenticator(javax.mail.Authenticator newAuthenticator)即可
这一点jakarta也做了,给我们提供了一个defaultAuthenticator
1java.lang.Object
2 javax.mail.Authenticator
3 org.apache.commons.mail.DefaultAuthenticator
2 javax.mail.Authenticator
3 org.apache.commons.mail.DefaultAuthenticator
覆盖掉该方法,实现你自己的东东 o_o
1protected javax.mail.PasswordAuthentication getPasswordAuthentication()
五:any more?
当然有了 o_o 以后再写.
相关推荐
Commons Emails 是 Apache Jakarta 项目的一部分,它是一个 Java 库,设计用于简化在 Java 应用程序中发送电子邮件的过程。这个库提供了丰富的功能,使得开发者能够更轻松地处理复杂的邮件构造和发送任务,而无需...
在Java程序中,你需要添加`commons-email-1.1.jar`到类路径中,这是Apache Jakarta Common Email的库文件。此外,由于`mail-1.3.3.jar`是JavaMail API的实现,它也是发送邮件所必需的,因为Common Email是建立在...
· javamail-1_4_1.zip · jakarta-taglibs-standard-1.1.2-src.zip · jakarta-taglibs-standard-1.1.2.zip · jaf-1_1_1.zip · hibernate-validator-5.0.0.CR2-dist.zip · guice-1.0-src.zip · ...
除了 JavaMail API,还可以使用 Jakarta Commons Email 这个库,它提供了更简洁的接口,简化了邮件的发送过程。例如,使用 Commons Email 发送带附件的邮件: ```java SimpleEmail email = new SimpleEmail(); ...
在IT领域,Tomcat是一个广泛使用的开源Java Servlet容器,由Apache软件基金会的Jakarta项目开发。当遇到“Tomcat异常”时,通常意味着在运行或配置Tomcat时遇到了问题。下面将详细讨论相关知识点: 1. **Tomcat异常...
4. `commons-dbcp-1.1.jar`:Apache Commons DBCP数据库连接池,如果使用数据库存储作业,需要此库,可从<http://jakarta.apache.org/commons/dbcp>下载。 5. `commons-digester.jar`:在某些插件使用时需要,可在...
cargo-0.8, checkstyle-3.1, clickstream-1.0.2, ...jakarta-commons, javamail-1.3.1, jmock-1.1.0, junit3.8.1 logging-log4j-1.2.11, pmd-3.0 velocity-1.4, urlrewrite-3.0-beta, xdoclet-1.3-SNAPSHOT,
在JavaMail的基础上,`commons.mail` 是Apache Commons项目的一个子项目,它提供了一个更简单、更易用的接口来发送邮件,特别是对于那些不需处理复杂邮件格式的场景。Commons Mail简化了HTML邮件、多部分消息和附件...
- **作用**: 主要用于数据库连接池管理,是DBCP(Database Connection Pool)的一部分,由Apache Jakarta项目开发,广泛应用于Tomcat等服务器中。 #### commons-validator.jar - **作用**: 提供了数据验证的工具,...
DBCP 是基于Jakarta commons-pool的数据库连接池实现,它可以高效地复用数据库连接,避免频繁创建和销毁连接所带来的开销。在实际应用中,特别是在高并发环境下,使用DBCP可以显著提升系统的性能和稳定性。 #### 10...
5. **jakarta-oro-2.0.8.jar**: Jakarta ORO(Oro Regular Expression Library)是一个正则表达式处理库,源自Perl5的正则表达式引擎。在Ant中,可以使用这个库进行字符串匹配和替换,尤其在处理文件名或路径时非常...
7. mail.jar:JavaMail API,用于发送和接收电子邮件,对于某些使用SMTP进行消息传递的Web服务可能很有用。 8. jaxrpc.jar:Java API for XML-RPC(Remote Procedure Call),与Axis紧密相关,提供了SOAP调用的接口...
总结,Java发送邮件可以通过JavaMail API、Jakarta Mail或Apache Commons Email库来实现。每种方法都有其优缺点,根据项目需求和团队熟悉程度选择合适的方式。在实际应用中,还需要考虑错误处理、邮件格式化、性能...
WildFly是一个流行的Java EE(现在称为Jakarta EE)应用服务器,它允许开发者部署和运行Java企业应用程序。文档中提到了"书签",这暗示文档结构化良好,便于用户快速查找需要的信息。 描述中的"WildFly管理员手册...
第2章 使用Jakarta Commons来简化开发 14 2.1 Jakarta Commons的功能和用法 14 2.2 小结 18 第3章 Java EE容器 19 3.1 什么是容器 19 3.2 Tomcat的安装和使用 20 3.3 小结 25 第4章 在Java EE中使用XML...
2.2.1. 更简单的XML配置 2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@AspectJ 切面的支持 2.4. 中间层 2.4.1. 在XML里更为简单的声明性事务配置 ...
2.4.1. 在XML里更为简单的声明性事务配置 2.4.2. JPA 2.4.3. 异步的JMS 2.4.4. JDBC 2.5. Web层 2.5.1. Spring MVC的表单标签库 2.5.2. Spring MVC合理的默认值 2.5.3. Portlet 框架 2.6. 其他特性 2.6.1. ...
2.2.1. 更简单的XML配置 2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@AspectJ 切面的支持 2.4. 中间层 2.4.1. 在XML里更为简单的声明性...