问题是:用户名和密码以及Smtp如果是163的,就可以发送,qq的就不行了,究竟这是为什么呢?package test;
//导入的包是雅加达的一个common mail包
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;public class Test 
{
public static void main(String[] args)
{
SimpleEmail email = new SimpleEmail();
email.setHostName("smtp.qq.com");
email.setAuthentication("283613310","密码");
try {
email.addTo("[email protected]", "xiaoman");
} catch (EmailException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
email.setFrom("[email protected]", "xiaoman");
} catch (EmailException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
email.setSubject("my email send to shakai ");
try {
email.setMsg("hi!do you see my email?");
} catch (EmailException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
email.send();
System.out.print("发送成功!");
} catch (EmailException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}异常信息为:
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.qq.com:25
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1138)
at org.apache.commons.mail.Email.send(Email.java:1163)
at test.Test.main(Test.java:33)
Caused by: javax.mail.AuthenticationFailedException
at javax.mail.Service.connect(Service.java:319)
at javax.mail.Service.connect(Service.java:169)
at javax.mail.Service.connect(Service.java:118)
at javax.mail.Transport.send0(Transport.java:188)
at javax.mail.Transport.send(Transport.java:118)
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1128)
... 2 more