您的当前位置:首页正文

响应服务器535 5.7.1 unab,javax.mail.AuthenticationFailedException:535身份验证失败(#5.7.1)...

2024-11-10 来源:个人技术集锦

我正在使用javamail api制作一个自动发送电子邮件java项目。当我使用smtp.gmail.com主机发送此邮件时,它的工作原理。但是当我使用自己的主机服务器mail.sitename.com时...它显示异常..我的用户名和密码是正确的。请有人帮我解决这个问题......

例外情况是: -

javax.mail.AuthenticationFailedException: 535 authentication failed (#5.7.1)

at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:826)

at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:761)

at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:685)

at javax.mail.Service.connect(Service.java:317)

at javax.mail.Service.connect(Service.java:176)

at javax.mail.Service.connect(Service.java:125)

at javax.mail.Transport.send0(Transport.java:194)

at javax.mail.Transport.send(Transport.java:124)

at com.zenga.servlet.MailNotification.sendMail(MailNotification.java:130)

at com.zenga.servlet.MailNotification.doPost(MailNotification.java:45)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

代码:---

a)我正在使用DAO模式获取(电子邮件ID)目的的数据

b)一个jsp文件,用于启动和限制以获取与我将要发送电子邮件的连接的连接数。

c)Servlet文件如下所示......

package com.zenga.servlet;

import java.io.*;

import java.security.GeneralSecurityException;

import java.util.*;

import com.sun.mail.util.MailSSLSocketFactory;

import com.zenga.dao.DaoFactory;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.mail.*;

import javax.mail.internet.*;

/**

* Servlet implementation class send

*/

@WebServlet("/send")

public class MailNotification extends HttpServlet {

private static final long serialVersionUID = 1L;

@SuppressWarnings("unchecked")

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

HashMaplist = new HashMap();

Set> set = null;

Iterator> itr = null;

int start = 0;

int limit = 0;

Map.Entry me = null;

try {

DaoFactory dao = DaoFactory.getDao();

start = Integer.parseInt(request.getParameter("start"));

limit = Integer.parseInt(request.getParameter("end"));

list = dao.insertLimit(start,limit);

set = list.entrySet();

itr = set.iterator();

while(itr.hasNext()) {

me = (Map.Entry)itr.next();

sendMail(me.getKey(),me.getValue(),request,response);

}

} catch (Exception e) {

}

}

private void sendMail(String toUsername, String to,HttpServletRequest request,HttpServletResponse response) throws IOException, GeneralSecurityException {

final String from = "xyz@sitename.com";

final String subject = "a subject";

final String password = "password";

final String host = "mail.sitename.com";

String msg = getMessage(toUsername);

//Set the host SMTP address

/*MailSSLSocketFactory socketFactory= new MailSSLSocketFactory();

socketFactory.setTrustAllHosts(true);

Properties properties=System.getProperties();

properties.put("mail.smtp.host", host);

properties.put("mail.smtp.user", from);

properties.put("mail.smtp.password", password);

//properties.put("mail.smtp.starttls.enable","true");

properties.put("mail.smtp.ssl.socketFactory", socketFactory);

properties.put("mail.smtp.EnableSSL.enable","true");

// properties.put("mail.smtp.ssl.enable","false");

properties.put("mail.smtp.ssl.trust",host);

properties.put("mail.protocol.ssl.trust", host);

properties.put("mail.smtp.socketFactory.port", "587");

properties.put("mail.smtp.socketFactory.class",

"javax.net.ssl.SSLSocketFactory");

properties.put("mail.smtp.port", "587");

properties.put("mail.smtp.auth", "true");

*/

Properties properties=System.getProperties();

properties.put("mail.smtp.host",host);

properties.put("mail.smtp.user",from);

properties.put("mail.smtp.password",password);

properties.put("mail.smtp.port","587");

properties.put("mail.smtp.auth","true");

// properties.put("mail.smtp.starttls.enable","true");

properties.put("mail.smtp.ssl.enable","false");

properties.put("mail.smtp.starttls.enable","false");

Authenticator auth = new Authenticator(){

public PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(from,password);

}

};

Session session=Session.getDefaultInstance(properties,auth);

response.setContentType("text/html");

try{

// create a message

MimeMessage message=new MimeMessage(session);

// set the from and to address

// InternetAddress addressFrom = new InternetAddress(from);

message.setFrom(new InternetAddress(from));

//InternetAddress addressTo = new InternetAddress(to);

message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));

// Setting the Subject and Content Type

message.setSubject(subject);

// create and fill the first message part

MimeBodyPart msgBodypart = new MimeBodyPart();

msgBodypart.setText(msg,"ascii","hmtl");

// create the Multipart and add its parts to it

Multipart multipart=new MimeMultipart();

multipart.addBodyPart(msgBodypart);

// add the Multipart to the message

message.setContent(multipart);

// set the Date: header

message.setSentDate(new Date());

Transport.send(message);

success++;

}

catch(MessagingException me)

{

failed++;

me.printStackTrace();

}

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

}

我已经尝试了评论中的所有内容,但没有任何效果。我阅读了很多stackoverflow示例,没有人正确解决它。

Top