关于使用Apache 的common-email-1.2.jar 包写发送Email

前段时间有个哥们问我,发送Java发送邮件,总是发送不成功,想让我帮忙看看。我以前用.NET的时候写过发送邮件,做了些整理,现在把用java发送邮件的方法也放在这里,仅供参考。

首先是准备阶段,在项目中需要引入:activation-1.1.jar、mail-1.4.jar、commons-email-1.2.jar。如果使用的是J2EE5的,需要找到javaee.jar,在MyEclipse中,用压缩工具打开删除mail包和activation包,如果是jar包,直接删除mail.jar和activation.jar,删除之前先做备份哦。之所以删除是因为apache 下的activation.jar 和mail-1.4.jar 和sun内置的那两个不一致,如果不删除会出现:Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream at javax.mail.internet.MimeUtility.<clinit>(MimeUtility.java:1161) at javax.mail.internet.InternetAddress.setPersonal(InternetAddress.java:196) at org.apache.commons.mail.Email.createInternetAddress(Email.java:596) at org.apache.commons.mail.Email.setFrom(Email.java:668) at com.hhwy.email.EmailSend.main(EmailSend.java:33)

下面将测试发送邮件代码给大家晒一下:

package com.hhwy.email; import org.apache.commons.mail.Email; import org.apache.commons.mail.SimpleEmail; /**发邮件 * 创建日期:2011-3-9 * <br />Description:对本文件的详细描述,原则上不能少于50字 * @author ZHK * @mender:(文件的修改者,文件创建者之外的人) * @version 1.0 * Remark:认为有必要的其他信息 */ public class EmailSend { public static void main(String[] args) throws Exception { Email email = new SimpleEmail(); email.setCharset("UTF-8"); email.setSSL(true);/*安全性*/ email.setHostName("smtp.gmail.com");/* Gmail POP 服务器 */ email.setSmtpPort(587);/* 服务器端口号 */ email.setFrom("******@gmail.com", "****", "UTF-8"); email.addTo("*******@qq.com"); email.setMsg("Hello World");/* 消息 */ email.setAuthentication("*****0214@gmail.com", "****");/* 登录票据即:发送邮件的用户名和密码 */ email.send(); } }

如果还不成功,你在检查下你的邮箱是不是开启了POP3和SMTP的服务。

想测试其他的邮件服务器的同志可以参考我的System.Net.Mail 发送邮件 SMTP协议之二【常用邮箱的SMTP的配置】 来设置端口号。

这个仅仅是简单的发邮件的例子,更多功能自己来好好改进吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值