Apache commons email 使用过程中遇到的问题
2016-07-06 09:36
585 查看
apache-commons-email是对mail的一个封装,所以使用起来确实是很方便。特别的,官网上的tutorial也是极其的简单。但是我也仍然是遇到了没有解决的问题。
apache-commons-email.jar
一开始我没有添加上面的mail.jar ,然后就导致在编码的过程中,各种报错。
报错的信息如下:
如果你也遇到了这个问题,而且解决了。欢迎留言!我会及时的来修改博客的!
jar包的添加
mail.jar && activationapache-commons-email.jar
一开始我没有添加上面的mail.jar ,然后就导致在编码的过程中,各种报错。
SimpleEmail实例
package email; import org.apache.commons.mail.DefaultAuthenticator; import org.apache.commons.mail.Email; import org.apache.commons.mail.SimpleEmail; import org.junit.Test; public class SimpleEmailTest { @Test public void simple() throws Exception { final String HOSTNAME = "smtp.163.com"; try { Email email = new SimpleEmail(); email.setHostName(HOSTNAME); // email.setSmtpPort(465); email.setAuthenticator(new DefaultAuthenticator("15640SSS27", "XXXXXXX")); email.setSSLOnConnect(true); email.setFrom("1SSSSSS27@163.com"); email.setSubject("Test Mail By Commons-Emial"); email.setMsg("Congratulations!\nYou have been admitted, so come here and join us ! :-)"); email.addTo("106SSSSSS@qq.com"); email.send(); System.out.println("邮件已成功发送!"); } catch (Exception e) { e.printStackTrace(); } } }
带附件实例(图片和URL)
带图片的
@Test public void test() throws Exception { // 添加一个附件 EmailAttachment attachment = new EmailAttachment(); attachment.setPath("E:\\Code\\Java\\apache-commons-email\\src\\email\\be.png"); attachment.setDisposition(EmailAttachment.ATTACHMENT); attachment.setDescription("one big beauty!"); attachment.setName("beauty.png"); // 实例化邮件 MultiPartEmail email = new MultiPartEmail(); email.setHostName("smtp.163.com"); email.setAuthenticator(new DefaultAuthenticator("15 xxxx27", "gxuxxxxxxx4")); email.setSSLOnConnect(true); email.addTo("dsds632@qq.com"); email.setFrom("15dsdsds027@163.com"); email.setSubject("The Beauty Picture!"); email.setMsg("Here is an email with a beauty!"); // 把附件添加到邮件 email.attach(attachment); // 发邮件 email.send(); System.out.println("邮件发送成功!"); }
带URL的
@Test public void testURL() throws Exception { // 添加一个附件 EmailAttachment attachment = new EmailAttachment(); attachment.setURL(new URL("http://www.apache.org/images/asf_logo_wide.gif")); attachment.setDisposition(EmailAttachment.ATTACHMENT); attachment.setDescription("Apache Logo!"); attachment.setName("ApacheLogo"); // 实例化邮件 MultiPartEmail email = new MultiPartEmail(); email.setHostName("smtp.163.com"); email.setAuthenticator(new DefaultAuthenticator("15ssss7", "gssssss4")); email.setSSLOnConnect(true); email.addTo("10ssdsds@qq.com"); email.setFrom("15dsdsdsdsds@163.com"); email.setSubject("The Beauty Picture!"); email.setMsg("Here is an email with a beauty!"); // 把附件添加到邮件 email.attach(attachment); // 发邮件 email.send(); System.out.println("邮件发送成功!"); }
下面的是嵌入数据,但是却没能成功
package email; import java.net.URL; import org.apache.commons.mail.DefaultAuthenticator; import org.apache.commons.mail.HtmlEmail; import org.junit.Test; public class WithHtmlTest { @Test public void sendHTMLFormattedEmail() throws Exception { try { // 实例化邮件 HtmlEmail email = new HtmlEmail(); email.setHostName("smtp.163.com"); email.setAuthentication("1dsadsadsa27@163.com", "gdsadsaddsadsd"); email.setSSLOnConnect(true); email.setSSL(true); email.addTo("1adas2@qq.com", "小郭"); email.setFrom("156dsadas@163.com", "Me"); email.setSubject("Test email with inline image"); // embed the image and get the content id URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif"); String cid = email.embed(url, "Apache Logo!"); // 设置html的内容 email.setHtmlMsg("<html>The apache logo - <img src=\"cid:" + cid + "\"></html>"); // 设置text的内容 email.setTextMsg("Your email client doesn't support HTML messages!"); // 发邮件 email.send(); } catch (Exception e) { e.printStackTrace(); } } }
报错的信息如下:
java.lang.NoSuchMethodError: javax.mail.internet.MimeBodyPart.setText(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V at org.apache.commons.mail.HtmlEmail.build(HtmlEmail.java:586) at org.apache.commons.mail.HtmlEmail.buildMimeMessage(HtmlEmail.java:510) at org.apache.commons.mail.Email.send(Email.java:1447) at email.WithHtmlTest.sendHTMLFormattedEmail(WithHtmlTest.java:35) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
如果你也遇到了这个问题,而且解决了。欢迎留言!我会及时的来修改博客的!
相关文章推荐
- Apache commons email 使用过程中遇到的问题
- 开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
- Windows 下安装Apache web服务器
- CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)
- Apache shutdown unexpectedly启动错误解决方法
- Apache Kafka - Quick Start on Windows
- CentOS环境下yum安装LAMP(Linux+Apache+Mysql+php)
- 为什么apache要设置虚拟主机
- 【Shiro】Apache Shiro架构之自定义realm
- Apache POI 第四讲之常见操作2
- 用Apache Ivy实现项目里的依赖管理
- Ubuntu下的LAMP环境搭建笔记 (基础向)
- Mac OS原来自带了apache,基本用法总结
- 如何重新将apache,mysql加入系统服务
- Apache DbUtils 探秘
- Apache DbUtils 探秘
- 使用apache commons-fileupload.jar 实现文件上传
- 转 整理 Linux服务器部署系列之一—Apache篇2
- Apache Maven 入门篇(下)
- Apache Maven 入门篇 ( 上 )