javaMail的问题 求救.!!

来源:百度知道 编辑:UC知道 时间:2024/06/06 02:18:29
我从网上找到的一个 邮件的例子,没发现什么错误.但是运行就有异常;

javax.mail.SendFailedException: Sending failed;
nested exception is:
class javax.mail.AuthenticationFailedException
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
at Mail.sendMail(Mail.java:196)
at Mail.main(Mail.java:233)
javax.mail.AuthenticationFailedException
at javax.mail.Service.connect(Service.java:264)
at javax.mail.Service.connect(Service.java:134)
at javax.mail.Service.connect(Service.java:86)
at com.sun.mail.smtp.SMTPTransport.connect(SMTPTransport.java:104)
at javax.mail.Transport.send0(Transport.java:162)
at javax.mail.Transport.send(Transport.java:80)
at Mail.sendMail(Mail.java:196)
at Mail.main(Mail.java:233)
因为 字符太多 发不了, 我在2楼发
public boolean sendMail(){
//构造mail session
System.out.println("sendMail 1");
Properties props = System.getPrope

你没有mail包吧
下载一个,把mail.jar放到..\jdk1.6.0\jre\lib\ext下

props.put("mail.smtp.auth","true");
改为:
props.put("smtp.host.auth","true");
试试
其实:
props.put("mail.smtp.host",host);
props.put("mail.smtp.auth","true");
这两句可以不要的。
Session session=Session.getDefaultInstance(props,new Authenticator(){
public PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(username,password);
}

可以改为
Session session=Session.getDefaultInstance(props,null);
再用个Transport对象的connect方法连接smtp服务器:
比如:transport.connect("mail.163.com","用户名",“密码”);
讲实话,你这个例子太差了,再找找,有更好的。
还有,JDK1。5以上,好像不建设使用Properties的put方法,而用setProperties代替。
要去下载个比较新的mail包,java.sun.com。8M多,我用过的是1.4.1版,我用j2ee低版本的替代,一样的代码,不能用。

可能是你使用的邮箱需要ssl认证,所以需要加上认证的property就可以了