- 浏览: 362060 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
tuspark:
关于javadoc这里讲解的更全面:《javadoc设置》。
Eclipse中生成javadoc【Z】 -
yuexiang1007:
帮我解决了问题,谢谢!!!
java.math.BigInteger使用心得总结 -
netwelfare:
个人感觉,文章对HashMap的遍历分析的有点浅,不如这里的介 ...
HashMap遍历的两种方式【Z】 -
memoryisking:
关于java.math.BigInteger讲解在这里可以看到 ...
java.math.BigInteger使用心得总结 -
巴尾的兔兔帅:
divide应该是除吧?不是减。dividepublic Bi ...
java.math.BigInteger使用心得总结
commons-email-1.1.jar: 这是Apache组织下的一个项目,主要就是对java的邮件功能进行了封装,用起来更加方便,简单。
接下来我们就说说这个jar包。
首先肯定得下载commons-email-1.1.jar,并下载mail.jar和activation.jar(它们可以从sun的网站上下载,从下载的javamail和jaf中找到)。
如果没有mail.jar,则会有:Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/Message 这样的错误提示。
如果没有activation.jar,则会有:Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataSource 这样的错误提示。
下面是一个简单的测试。
- Java代码
- import org.apache.commons.mail.EmailException;
- import org.apache.commons.mail.SimpleEmail;
- public class Send
- {
- public Send()
- {
- }
- public static void main(String[] args)
- {
- send();
- }
- public static void send()
- {
- SimpleEmail email = new SimpleEmail();
- email.setTLS(true );
- email.setHostName("smtp.gmail.com" );
- email.setAuthentication("***@gmail.com" , "***" ); //用户名和密码
- try
- {
- email.addTo("lifangxin2050@163.com" ); //接收方
- email.setFrom("lifangxin2050@gmail.com" ); //发送方
- email.setSubject("Java Mail Test" ); //标题
- email.setMsg("Just a simple send test ." ); //内容
- email.send();
- } catch (EmailException e) {
- e.printStackTrace();
- }
- }
- }
- import org.apache.commons.mail.EmailException;
- import org.apache.commons.mail.SimpleEmail;
- public class Send
- {
- public Send()
- {
- }
- public static void main(String[] args)
- {
- send();
- }
- public static void send()
- {
- SimpleEmail email = new SimpleEmail();
- email.setTLS(true ); //是否TLS校验,,某些邮箱需要TLS安全校验,同理有SSL校验
- // email.setSSL(true);
- email.setHostName("smtp.gmail.com" );
- email.setAuthentication("***@gmail.com" , "***" ); //用户名和密码
- try
- {
- email.addTo("lifangxin2050@163.com" ); //接收方
- email.addCc("ss327@163.com" ); //抄送方
- email.addBcc("ss377@163.com" ); //秘密抄送方
- email.setSubject("Java Mail Test" ); //标题
- email.setMsg("Just a simple send test ." ); //内容
- email.send();
- } catch (EmailException e) {
- e.printStackTrace();
- }
- }
- }
上面的邮件标题和内容用的都是英文,如果改为中文呢?我试了一下,结果邮件标题不是乱码,而邮件内容则中文部分是乱码。设置其charSet为GB2312或者UTF-8后就可以发送中文邮件了,显示正常了。如下面的代码。
- Java代码
- import org.apache.commons.mail.EmailException;
- import org.apache.commons.mail.SimpleEmail;
- public class Send
- {
- public Send()
- {
- }
- public static void main(String[] args)
- {
- send();
- }
- public static void send()
- {
- SimpleEmail email = new SimpleEmail();
- email.setTLS(true );
- email.setHostName("smtp.gmail.com" );
- email.setAuthentication("lifangxin2050@gmail.com" , "sdzzczqqyyxy" );
- try
- {
- email.addTo("lifangxin2050@163.com" );
- email.setFrom("lifangxin2050@gmail.com" ); //我方
- email.setSubject("Java发送邮件测试" ); //标题
- email.setCharset("GB2312" ); //设置Charset
- email.setMsg("这是一封Java程序发出的测试邮件。" ); //内容
- email.send();
- } catch (EmailException e) {
- e.printStackTrace();
- }
- }
- }
怎么样?简单吧~~~
有人这时说到了网页邮件,其实只需要把上面SimpleEmail换成HtmlEmail,然后设置邮件
内容的方法由setMsg(String str)变为setHtmlMsg(String
str)就可以了,这样就可以再邮件里使用<br/>等html标签来控制邮件的格式了.
还有人问,那么附件呢?别急,我们马上就来做个带附件发送的代码
- import java.net.MalformedURLException;
- import java.net.URL;
- import org.apache.commons.mail.EmailAttachment;
- import org.apache.commons.mail.EmailException;
- import org.apache.commons.mail.MultiPartEmail;
- publicclass AttachmentMailTest {
- publicstaticvoid main(String[] args) throws EmailException, MalformedURLException {
- // 创建一个Email附件
- EmailAttachment emailattachment = new EmailAttachment();
- emailattachment.setPath("/biao_05.jpg" );
- // emailattachment.setURL(new URL("http://www.blogjava.net/bulktree/picture/bulktree.jpg"));
- emailattachment.setDisposition(EmailAttachment.ATTACHMENT);
- emailattachment.setDescription("This is Smile picture" );
- emailattachment.setName("bulktree" );
- // 创建一个email
- MultiPartEmail multipartemail = new MultiPartEmail();
- multipartemail.setHostName("smtp.163.com" );
- multipartemail.addTo("bulktree@126.com" , "bulktree" );
- multipartemail.setFrom("bulktree@163.com" , "bulktree" );
- multipartemail.setAuthentication("bulktree" , "123456" );
- multipartemail.setSubject("This is a attachment Email" );
- multipartemail.setMsg("this a attachment Eamil Test" );
- //添加附件
- multipartemail.attach(emailattachment);
- //发送邮件
- multipartemail.send();
- System.out.println("The attachmentEmail send sucessful!!!" );
- }
- }
就这样,附件也发送成功了,大家可以试一下,另外这个项目是开源的,大家可以取下载它的src来看看,我暂时就说到这儿..
不过用这个commons-email-1.1.jar实现发邮件还是有2个值得注意的地方:
1.前面提到mail.jar和activation.jar包的问题,这两个包需要额外下载并且必不可少的两个包
2.不知是否是我使用错误或者软件环境导致,我在第一次使用时,出现了一个奇怪的异常:
在网上有人说是因为JavaEE版本和JavaMail的版本不一致导致的.我用的是jdk1.6.查了半天,没找到是哪里冲突了,于是我建web项目
时,选择1.4版本,于是没有出现任何问题,可以正常使用,估计应该是myeclipse建项目时自带的jar包引起了这个问题.我用的是
myeclipse 6.0.不知道在eclipse或其他版本的myeclipse上是否会出现这个问题
发表评论
-
JSTL中的<c:标签【Z】
2011-08-31 20:48 1120Taglib 伪指令 Java代码 ... -
java接口嵌套【Z】
2011-05-18 17:09 1314在Java语言中,接口可以嵌套在类或其它接口中。由于Jav ... -
JMF安装【Z】
2011-05-07 20:52 1053下载并安装JMF 在MyEclipse中选择 窗口/首选项/ ... -
java生成PDF文件【Z】
2011-01-14 15:03 1173如果应用程序需要动态 ... -
字符集编码【Z】
2010-12-29 18:54 857问题研究 --字符集 ... -
java常用第三方jar包【Z】
2010-12-26 22:39 3319commons-digester.jar Digeste ... -
不使用JNI获得系统信息【Z】
2010-12-22 13:28 560在Java中,可以获得总的物理内存、剩余的物理内存、已使用的物 ... -
java获得当前路径【Z】
2010-12-18 14:37 9031、利用System.getProperty()函数获取当前路 ... -
java容器类-1【Z】
2010-12-17 21:43 975对象的集合 如果程序的对象数量有限 ... -
java UIManager的风格【Z】
2010-12-17 12:28 2642Java'中的几种Look and Feel 1、Met ... -
serialVersionUID的作用和意义【Z】
2010-12-15 10:38 1514在Java中,软件的兼容性是一个大问题,尤其在使用到对象串行性 ... -
HashMap遍历的两种方式【Z】
2010-12-07 18:42 931HashMap遍历的两种方式 ... -
23个经典JDK设计模式——系统JDK使用设计模式的例子【Z】
2010-12-05 21:33 998酷壳 版主陈皓近日发表博文《JDK里的设计模式 》,文中他 ... -
String/StringBuffer/StringBuild【Z】
2010-11-12 14:10 1299[编辑] String,StringBuffer和String ... -
tomcat中web.xml详解【Z】
2010-10-18 14:47 8951 定义头和根元素 部 ... -
Java 理论与实践: 线程池与工作队列【Z】
2010-10-18 09:45 897线程池有助于实现最 ... -
单例模式完全剖析【Z】
2010-10-17 22:48 763Buildfile: build.xml ... -
在MyEclipse中直接查看class文件(在没有源码的情况下)【Z】
2010-10-17 22:04 1267想直接在myeclipse中查看class文件,就像查看普通的 ... -
HashMap实现及冲突【Z】
2010-10-12 21:41 931了解 HashMap 原理对于日后的缓存机制多少有 ... -
java HashMap的实现原理【Z】
2010-10-12 21:39 2910深入Java集合学习系列:HashMap的实现原 ...
相关推荐
Java mail-1.4.7.jar,java发送邮件jar包。通过这个Jar包可实现基于Java的邮件发送,可以应用于Loadrunner或Jmeter中的测试报告邮件发送
完整代码,基于jsp 邮件开发 javamail.7z
下载自https://www.oracle.com/java/technologies/java-archive-eepla-downloads.html#javamail-1.4.5-oth-JPR
Fundamentals of the JavaMail API Presented by developerWorks, your source for great tutorials ibm.com/developerWorks Table of Contents If you're viewing this document online, you can click ...
用javamail发邮件必须的三个jar包跟其他的不知道什么作用的包 mail.jar+activation.jar+additionnal.jar
│ 11.Maven项目模块划分-引用依赖包( f- {5 L4 F2 i8 z+ c* U │ 12.项目环境搭建细节-监听器 │ 13.项目环境搭建细节-过滤器 │ 14.项目环境搭建细节-核心控制器 │ 15.项目环境搭建细节-spring-springmvc相关配置...
16.3 使用JDBC驱动的JavaMail发送电子邮件信息 16.3.1 使用JSP页面和JavaMail发送电子邮件 16.3.2 使用有SendMailBean的JSP页面 16.3.3 部署 16.4 使用JavaMail API接收电子邮件 16.5 小结 第4部分 数据库、...
16.3 使用JDBC驱动的JavaMail发送电子邮件信息 16.3.1 使用JSP页面和JavaMail发送电子邮件 16.3.2 使用有SendMailBean的JSP页面 16.3.3 部署 16.4 使用JavaMail API接收电子邮件 16.5 小结 第4部分 数据库、...
16.3 使用JDBC驱动的JavaMail发送电子邮件信息 16.3.1 使用JSP页面和JavaMail发送电子邮件 16.3.2 使用有SendMailBean的JSP页面 16.3.3 部署 16.4 使用JavaMail API接收电子邮件 16.5 小结 第4部分 数据库、...
16.3 使用JDBC驱动的JavaMail发送电子邮件信息 16.3.1 使用JSP页面和JavaMail发送电子邮件 16.3.2 使用有SendMailBean的JSP页面 16.3.3 部署 16.4 使用JavaMail API接收电子邮件 16.5 小结 第4部分 数据库、...
J2EE常用工具类汇总 J2EE常用工具类—Value Object工具类 J2EE常用工具类—Json工具 J2EE常用工具类—Jdbc操作 ...J2EE常用工具类——邮件处理类(javaMail发送邮件) J2EE常用工具类——字符串工具类