此文主要是解决在myEclipse6.5下遇到javaSendMail问题的。(高版本myEclipse公司不让用。)
昨天做了个用java发邮件,老失败。
1、Could not connect to SMTP host: stmp.163.com, port: 25或465
2、classNofoundException
解决办法是:导入
commons.mail.jar,
mail.jar,
activation.jar
这三个jar包后,把myEclipse里的javaEE里的jar包用360rar打开,
找到mail和activation这两个文件夹删掉。
然后就可以了。
备注:虽然javaEE5里已经包含,mail和activation的代码,但是删除代码,
重新导入单独mail.jar,activation.jar就好了。奇怪?
应该是有冲突,或者是我的javaEE老,我用myEclipse6.5自带的javaEE 5。
以下是代码,apache官方的源码测试的,拿来主义。此文主要的目的是,解决异常,让测试代码跑起来。
package com.my.test;
import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.MultiPartEmail;
public class SendAttachment {
/**
* @Description
* @param
* @param args
* @return void
* @author 十六笔画
* @date Jun 16, 2014 4:50:52 PM
*/
public static void main(String[] args) throws EmailException {
MultiPartEmail email = new MultiPartEmail();//可以发附件的email对象
email.setHostName("smtp.163.com");
email.setSmtpPort(465);
email.setAuthenticator(new DefaultAuthenticator("xxxxxx@163.com", "xxxxxxx"));//用户名,密码
email.setSSLOnConnect(true);
email.setSSLCheckServerIdentity(true);
EmailAttachment attachment = new EmailAttachment();//附件
attachment.setPath("D:\\workspace6.5\\sendMail\\WebRoot\\index.jsp");
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("Apache logo");
attachment.setName("Apache logo");
try {
email.addTo("xxxxx@qq.com"); // 接收方
email.setFrom("xxxxx@163.com"); // 发送方
email.setSubject("Java Mail Test"); // 标题
email.setMsg("Just a simple send test ."); // 内容
email.attach(attachment);
email.send();
} catch (Exception e) {
System.out.println(e);
}
}
}
run这个main方法就可以了。