- 浏览: 465606 次
- 性别:
- 来自: 潘多拉
文章分类
最新评论
-
lijunwyf:
代码好像不完整,后端没串起来的感觉
Json-RPC for java首次尝试 -
jerry.chen:
我用这种方式去,貌似没啥效果,楼主!
Xfire开发的webservice客户端超时问题解决 -
漫步邃思:
这个问题常遇到,老是想不起来解决方法,记住了
resin3.1.0无法解析EL表达式问题解决 -
dampce032:
在不删掉integratedSecurity=true;的情况 ...
JDBC 连接SQLServer数据库(Failed to load the sqljdbc_auth.dll) -
kill_e680:
取CPU号和取硬盘号,在linux下可以用吗?
sigar使用:在web中应用sigar取得系统信息
一:Quick Start
通过SimpleEmail发送邮件
就如代码里字面上的意思一样简单:
1:创建以SimpleEmail对象
2:设定发送信件的smtp服务器,如果没有设定,会寻找系统变量中mail.host值。
3:设定smtp的用户和密码
4:收件人
5:发件人
6:主题
7:内容
8:发送
二:发送带附件的邮件
我们可以发送本机的附件,当然我们也可以发送非本机的附件,如果发送的是一个存在网络上的附件的url,则邮件发送的时候会自动下载,添加到附件中。
三:发送html格式的邮件
四:最后一步
如果需要实现更复杂authenticator 你可以extends javax.mail.Authenticator ,实现你自己的东西,然后调用Email.setAuthenticator(javax.mail.Authenticator newAuthenticator)即可
这一点jakarta也做了,给我们提供了一个defaultAuthenticator
java.lang.Object
javax.mail.Authenticator
org.apache.commons.mail.DefaultAuthenticator
覆盖掉该方法,实现你自己的东东 o_o
protected javax.mail.PasswordAuthentication getPasswordAuthentication()
顺便再整理一下,朋友讨论的关于一些jakarta commons email出现乱码的问题:
一:通过SimpleEmail发送中文内容出现乱码的问题
SimpleEmail的代码如下
只是采用默认的,
1public static final String TEXT_PLAIN = "text/plain";
并没有指定编码。
如果通过SimpleEmail发送,需要指定编码:Water Ye@ITO 的说明
1email.setContent("测试邮件", "text/plain;charset=GBK");
二:关于附件中文名称乱码的问题:
需使用MimeUtility
原因是在MIME的相应规范中(RFC2047等)说明了附件标题必须是US-ASCII字符, 所以在发送中文标题的附件时需要编码成US-ASCII字符, 有两种编码方式: B (BASE64), Q (Quoted-Printable), 这些方法在MimeUtility里
都已经做了封装, 所以在发送附件时使用如下:
通过SimpleEmail发送邮件
java.lang.Object org.apache.commons.mail.Email org.apache.commons.mail.SimpleEmail SimpleEmail email = new SimpleEmail(); email.setHostName("mail.4ya.cn"); email.setAuthentication("<username>","<password>") email.addTo("martin.xus@gmail.com", "martin"); email.setFrom("martin@4ya.cn", "martin"); email.setSubject("测试主题"); email.setMsg("这里是邮件内容"); email.send();
就如代码里字面上的意思一样简单:
1:创建以SimpleEmail对象
2:设定发送信件的smtp服务器,如果没有设定,会寻找系统变量中mail.host值。
3:设定smtp的用户和密码
4:收件人
5:发件人
6:主题
7:内容
8:发送
二:发送带附件的邮件
我们可以发送本机的附件,当然我们也可以发送非本机的附件,如果发送的是一个存在网络上的附件的url,则邮件发送的时候会自动下载,添加到附件中。
1:)发送本地附件: EmailAttachment attachment = new EmailAttachment(); attachment.setPath("test/test.rar"); attachment.setDisposition(EmailAttachment.ATTACHMENT); attachment.setDescription("python resource"); attachment.setName("resource"); 2:)发送不存在本地的附件 EmailAttachment attachment = new EmailAttachment(); attachment.setURL(new URL("http://www.smilinglibrary.org/sldoc/pics/index03.jpg")); attachment.setDisposition(EmailAttachment.ATTACHMENT); attachment.setDescription("微笑图书馆"); attachment.setName("微笑图书馆"); next,添加附件到我们的邮件中 MultiPartEmail email = new MultiPartEmail(); email.setHostName("mail.4ya.cn"); email.setAuthentication("<username>","<password>") email.addTo("martin.xus@gmail.com", "martin"); email.setFrom("martin@4ya.cn", "martin"); email.setSubject("邮件主题"); email.setMsg("邮件内容"); //添加附件 email.attach(attachment); //发送邮件 email.send(); 如果需要发送多个附件,只需创建多个EmailAttachement,即可 email.attach(attachment1) email.attach(attachment2)
三:发送html格式的邮件
通过HtmlEmail我们可以发送Html格式的邮件: java.lang.Object org.apache.commons.mail.Email org.apache.commons.mail.MultiPartEmail org.apache.commons.mail.HtmlEmail 如下: 1//HtmlEmail! HtmlEmail email = new HtmlEmail(); email.setHostName("mail.4ya.cn"); email.setAuthentication("<username>","<password>") email.addTo("martin@4ya.cn"martin"); email.setFrom("martin.xus@gmail.com"martin"); email.setSubject("主题:该邮件包括html格式内容"); // embed the image and get the content id // 注意这里:embed 将帮助我们创建标签如:cid:xxx url URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif"); String cid = email.embed(url, "Apache logo"); /** set the html message 我们看到HtmlEmail extends Email的,它依然有setMsg(),但是这里发送的邮件包括了插入在邮件内容中的图片,所以不能在使用了setMsg(),而要以setHtmlMsg 或setTextMsg代码 **/ email.setHtmlMsg("<html>The apache logo - <img src=\"cid:"+cid+"\"></html>"); // set the alternative message email.setTextMsg("Your email client does not support HTML messages"); //set mail email.send();
四:最后一步
如果需要实现更复杂authenticator 你可以extends javax.mail.Authenticator ,实现你自己的东西,然后调用Email.setAuthenticator(javax.mail.Authenticator newAuthenticator)即可
这一点jakarta也做了,给我们提供了一个defaultAuthenticator
java.lang.Object
javax.mail.Authenticator
org.apache.commons.mail.DefaultAuthenticator
覆盖掉该方法,实现你自己的东东 o_o
protected javax.mail.PasswordAuthentication getPasswordAuthentication()
顺便再整理一下,朋友讨论的关于一些jakarta commons email出现乱码的问题:
一:通过SimpleEmail发送中文内容出现乱码的问题
SimpleEmail的代码如下
public class SimpleEmail extends Email { /** * Set the content of the mail * * @param msg A String. * @return An Email. * @throws EmailException see javax.mail.internet.MimeBodyPart * for definitions * @since 1.0 */ public Email setMsg(String msg) throws EmailException { if (EmailUtils.isEmpty(msg)) { throw new EmailException("Invalid message supplied"); } setContent(msg, Email.TEXT_PLAIN); return this; } }
只是采用默认的,
1public static final String TEXT_PLAIN = "text/plain";
并没有指定编码。
如果通过SimpleEmail发送,需要指定编码:Water Ye@ITO 的说明
1email.setContent("测试邮件", "text/plain;charset=GBK");
二:关于附件中文名称乱码的问题:
需使用MimeUtility
原因是在MIME的相应规范中(RFC2047等)说明了附件标题必须是US-ASCII字符, 所以在发送中文标题的附件时需要编码成US-ASCII字符, 有两种编码方式: B (BASE64), Q (Quoted-Printable), 这些方法在MimeUtility里
都已经做了封装, 所以在发送附件时使用如下:
1MimeUtility.encodeText(filename)); EmailAttachment attachment = new EmailAttachment(); attachment.setPath("c:\\测试.txt"); attachment.setDisposition(EmailAttachment.ATTACHMENT); attachment.setDescription("测试文件"); // attachment.setName(MimeUtility.encodeText("测试文件.txt")); MultiPartEmail email = new MultiPartEmail(); email.setHostName("192.168.0.3"); email.setAuthentication("martin.xus", "1234"); email.addTo("martin.xus@192.168.0.3", "martin"); email.setFrom("martin.xus@192.168.0.3", "martin"); email.setSubject("测试带附件"); email.setMsg("该邮件含附件"); //添加附件 email.attach(attachment); //发送邮件 email.send(); end ---------------------------------------------------------------------------------
发表评论
-
myeclipse 6.5 blue 注册码
2015-01-19 12:38 855package com.kk.test; import ja ... -
xml解析[转]
2011-09-22 17:39 963jameswxx 原创 在平时工作中,难免会遇到把XML作为数 ... -
ValidateUtil
2011-09-20 08:12 1729import java.io.Serializable; ... -
log4j中关闭Hibernate调试信息
2011-09-14 08:39 2210在tomcat启动的时候,出现这个警告: log4j:WAR ... -
log4j知识点
2011-08-29 08:56 11771、Log4j.properties中至少有一个appende ... -
解决AJAX传送中文会导致乱码的问题
2011-07-16 09:46 947使用POST的时候: //如果传送参数是直接赋予的,就会产生乱 ... -
提升网站程序开发安全的6大诀窍
2011-07-16 09:43 8721.前后、端都要检查使用者输入 许多程序开发人员喜欢用Java ... -
Web测试方法
2011-07-16 09:34 16在Web工程过程中,基于Web系统的测试、确认和验收是一项重要 ... -
Ajax-------IE和FIREFOX 脚本的一些区别
2011-07-16 09:13 10331:innerText IE支持,FIREFO ... -
一段截屏的代码
2011-07-15 17:14 932import java.awt.Dimension ... -
Java实现给图片添加水印
2011-07-15 16:38 1066package com.ccniit.url; im ... -
始终会用上的Common BeanUtils
2011-07-15 16:37 867Beanutils用了魔术般的反射技术,实现了很多夸张有用的功 ... -
JAVA生成缩略图
2011-07-15 16:34 1359方法1:[第一种方法比后一种生成的缩略图要清晰] imp ... -
JAVA编程技巧之如何实现HTTP的断点续传
2011-07-15 16:32 1025(一)断点续传的原理 其实断点续传的原理很简单,就是在Htt ... -
jspSmartUpload上传下载全攻略
2011-07-15 16:27 1269一、安装篇 jspsmartupload是由www.js ... -
关于Java的Cookie操作
2011-07-15 16:05 10001.设置Cookie 1Cookie cookie ... -
Javamail操作指南
2011-07-15 16:03 1441怎样才算比较完整的Javamail操作指南?我想应该包括绝大多 ... -
SQLHelper类(Java版)
2011-07-15 15:38 1625SQLHelper类(Java版), 模仿微软提供的SQLHe ... -
java汉字转拼音
2011-07-15 15:15 1133//将汉字转换为全拼 public static Str ... -
Java 调用CMD 命令
2011-07-15 15:07 1375java的Runtime.getRuntime().exec( ...
相关推荐
在描述中提到的"实现过程文章的连接"可能指向一篇教程或指南,该指南详细解释了如何使用Apache Commons Email库来发送邮件,包括设置服务器参数、添加附件、处理异常等。这样的资源对初学者非常有帮助,能够让他们...
Apache Commons Email是一个Java库,它提供了简单和直接的方式来创建电子邮件,包括HTML邮件、多部分邮件以及附件等。这个库简化了使用JavaMail API发送电子邮件的过程。 描述中的重复文字“commons-email-1.1-src....
本教程将详细介绍如何使用`commons-email-1.1`库结合Java来实现邮件发送功能。 `commons-email`是Apache Commons项目的一部分,它提供了一个简单且灵活的API来创建和发送电子邮件。在`java`开发中,`commons-email`...
本教程将深入探讨如何使用Java从应用程序中发送电子邮件,通过三种不同的方法实现这一功能。以下是对这些方法的详细解释: 1. **JavaMail API** JavaMail API是Java中用于处理邮件的官方库,它提供了一系列接口和...
Apache Commons Email库可以简化这个过程,提供更方便的API,例如`EasyEmail`类。 总结起来,Java发送Email涉及的主要知识点包括:JavaMail API的使用、SMTP/IMAP/POP3协议的理解、邮件头部和主体的构建、以及可能...
《使用Digester解析XML的深度指南》 在Java开发中,处理XML...通过本教程,你应该对使用Apache Commons Digester解析XML有了全面的理解。实践中,不断探索和调整规则,将能充分发挥其潜力,为你的项目带来极大的便利。
本教程将深入探讨如何使用Java实现邮件验证,包括发送邮件和进行邮件验证的过程。 首先,我们需要引入第三方的JavaMail API库,通常我们会使用Apache Commons Net库和JavaMail API来处理邮件相关任务。在Maven项目...
在实际开发中,为了方便使用JavaMail,还可以借助一些开源库,比如Apache的`commons-email`,它提供了一种更简洁的方式来发送邮件,包括带附件的邮件。 总的来说,`mail.jar`和`activation.jar`是JavaMail的核心...
Apache Commons Email库是JavaMail的一个简化版本,提供了更简单的接口来发送电子邮件,包括HTML邮件、附件、多部分消息等。要使用JavaMail,你需要理解SMTP(Simple Mail Transfer Protocol)协议,这是互联网上...
总结,Java发送邮件可以通过JavaMail API、Jakarta Mail或Apache Commons Email库来实现。每种方法都有其优缺点,根据项目需求和团队熟悉程度选择合适的方式。在实际应用中,还需要考虑错误处理、邮件格式化、性能...
本教程将通过一个名为"邮件发送小例子"的项目,教你如何利用`HtmlEmail`类来实现HTML格式的邮件发送。`HtmlEmail`是一个专门用于创建和发送带有HTML内容的邮件的工具,它简化了邮件编程的复杂性,让我们能够更加便捷...
在“Struts2_1100_SimpleDataValiation”这个压缩包中,可能包含了相关的代码示例、教程文档,或者是一个简单的Struts2项目,用于演示如何在实际应用中实现数据校验。你可以通过解压文件,学习和理解Struts2数据校验...
这些函数通常来自Apache Commons Lang和Apache Commons BeanUtils库。 4. **JSTL国际化和格式化库(fmt)** 这个库提供标签来处理国际化和本地化,如`<fmt:message>`用于获取消息资源,`<fmt:formatNumber>`用于...
本教程将介绍如何实现Android程序在崩溃时自动发送邮件,以便快速获取并分析错误信息。 首先,我们需要集成一个用于发送邮件的框架包。在Java世界里,常用的库有JavaMail API和Apache Commons Net,但在Android中,...
本教程假设读者已经具备一定的Java基础,并对Spring框架有一定的了解。同时,读者也应该熟悉基本的数据库操作和SQL语言。 #### 三、准备工作 在开始之前,请确保已经安装了以下环境: - Java 开发环境 - Spring ...
同时,为了提高代码的可读性和可维护性,可以考虑使用第三方库如Apache Commons Email或Spring Framework的MailSender接口,它们提供了更简洁的API来发送邮件。 总之,“张孝祥Java邮件开发详解”教程将帮助你掌握...
- Apache Commons Email:提供更简单的邮件发送接口,支持HTML邮件和模板。 - Spring Framework的JavaMailSender:整合Spring,简化邮件发送操作。 10. **学习资源** 开发者可以参考JavaMail官方文档,以及各种...
本教程将带你了解如何开发一个简单的ORM框架,以此为基础,你可以深入理解ORM的工作原理,并扩展出更复杂的功能。 首先,我们需要理解ORM的核心思想:将数据库中的表映射为Java类,表中的记录映射为类的实例,字段...
在Struts框架中,可以使用第三方库如C3P0或Apache Commons DBCP来管理数据库连接。连接池可以提高性能,因为它会重用已打开的连接,而不是每次请求时都新建一个。 在JSP页面中,我们通常不直接编写业务逻辑,而是...
描述中同样提到“14_Adressbuch_csv”,这可能是项目或教程的一部分,其中“14”可能代表系列中的第14个主题或步骤,暗示这是一个逐步进阶的学习过程。在这个项目中,用户可能学习如何使用Java处理CSV文件来创建、...