当前位置:编程学习 > JAVA >>

java mail 发送邮件错误,javax.mail.AuthenticationFailedException: failed to connect

以下是我的代码:
@Override
public boolean sendMail(String from)
{
boolean isSucceed = false;
String host = "smtp.ca-psa.com";
String subject = "量具管理系统30天自动提醒";
UserDAO userdao = new UserImpl();
User user = userdao.getUserByMail(from);
String mailpass = user.getMailpassword();
ArrayList<MailContent> contentlist = getMailContent();
int count  = contentlist.size();
for(int i=0; i<count; i++)
{
MailContent mailcontent = contentlist.get(i);
String to = mailcontent.getTo();
if(to == null)
{
to = "wu.yingfang@ca-psa.com";
}
String content = mailcontent.getContent();
boolean isCC = mailcontent.isCC();
try
{
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", true);
Session session = Session.getDefaultInstance(props);

Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
            session.setDebug(true); 
            if(isCC)
            {
             String leadermail = mailcontent.getLeadermail();
             message.addRecipient(Message.RecipientType.CC, new InternetAddress(leadermail));
            }
            message.setSubject(subject);
message.setText(content);
message.saveChanges();
Transport transport = session.getTransport("smtp");
System.out.println(host);

System.out.println(from);
System.out.println(mailpass);
//from = "wu.yingfang";
transport.connect(host, from, mailpass);

transport.sendMessage(message, message.getAllRecipients());
transport.close();
isSucceed = true;

} catch (AddressException e) 
{
e.printStackTrace();
} catch (MessagingException e) 
{
e.printStackTrace();
}
}

return isSucceed;
}

以下是运行时错误:
DEBUG: setDebug: JavaMail version 1.4.2
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.ca-psa.com", port 25, isSSL false
220 CAPSA-EX01.CA-PSA.COM Microsoft ESMTP MAIL Service ready at Mon, 21 Jan 2013 08:52:26 +0800
DEBUG SMTP: connected to host "smtp.ca-psa.com", port: 25

EHLO XXXXX9553PT1
250-CAPSA-EX01.CA-PSA.COM Hello [10.128.38.138]
250-SIZE
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-X-ANONYMOUSTLS
250-AUTH NTLM LOGIN
250-X-EXPS GSSAPI NTLM
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250-XEXCH50
250-XRDST
250 XSHADOW
DEBUG SMTP: Found extension "SIZE", arg ""
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "DSN", arg ""
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
DEBUG SMTP: Found extension "STARTTLS", arg ""
DEBUG SMTP: Found extension "X-ANONYMOUSTLS", arg ""
DEBUG SMTP: Found extension "AUTH", arg "NTLM LOGIN"
DEBUG SMTP: Found extension "X-EXPS", arg "GSSAPI NTLM"
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "BINARYMIME", arg ""
DEBUG SMTP: Found extension "CHUNKING", arg ""
DEBUG SMTP: Found extension "XEXCH50", arg ""
DEBUG SMTP: Found extension "XRDST", arg ""
DEBUG SMTP: Found extension "XSHADOW", arg ""
DEBUG SMTP: Attempt to authenticate
DEBUG SMTP: check mechanisms: LOGIN PLAIN DIGEST-MD5 
AUTH LOGIN
334 VXNlcm5hbWU6
d3UueWluZ2ZhbmdAY2EtcHNhLmNvbQ==
334 UGFzc3dvcmQ6
TkVXMDAx
535 5.7.3 Authentication unsuccessful
javax.mail.AuthenticationFailedException: failed to connect
at javax.mail.Service.connect(Service.java:322)
at javax.mail.Service.connect(Service.java:172)
at com.capsa.impl.RecordImpl.sendMail(RecordImpl.java:545)
at com.capsa.servlet.MailServlet.doGet(MailServlet.java:39)
at com.capsa.servlet.MailServlet.doPost(MailServlet.java:54)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
at java.lang.Thread.run(Thread.java:662) java mail   Authentication  failed --------------------编程问答-------------------- 换成下面的试试:
Transport transport=session.getTransport();
transport.send(msg,new Address[]{new InternetAddress("xxx@sina.com")}); --------------------编程问答-------------------- 还有就是,看下输入的信息是否有误。比如host之类的值。 --------------------编程问答-------------------- 密码不对吧。 --------------------编程问答-------------------- 验证失败。用户名,密码错误了吧。。。
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,