带有Gmail的JavaMail:535-5.7.1不接受用户名和密码

尝试使用JavaMail

API发送邮件时收到此错误。我确定用户名和密码是100%正确的。我要连接的Gmail帐户是一个较旧的帐户,因为他们说使用新帐户需要一些时间。

调试SMTP RCVD:535-5.7.1不接受用户名和密码。了解更多

535 5.7.1 http://mail.google.com/support/bin/answer.py?answer=14257 x35sm3011668

wfh.6

javax.mail.SendFailedException:发送失败;

嵌套的异常是:

javax.mail.AuthenticationFailedException

在javax.mail.Transport.send0(Transport.java:218)

在javax.mail.Transport.send(Transport.java:80)

在Main(Main.java:41)

在Main.main(Main.java:51)

这是我的代码:

导入javax.mail。*;

导入javax.mail.internet。*;

导入java.util。*;

公共班级

{

字符串d_email =“ abc@gmail.com”,

d_password =“通过”,

d_host =“ smtp.gmail.com”,

d_port =“ 465”,

m_to =“ abc@gmail.com”,

m_subject =“正在测试”,

m_text =“测试电子邮件”。

公共Main()

{

属性props = new Properties();

props.put(“ mail.smtp.user”,d_email);

props.put(“ mail.smtp.host”,d_host);

props.put(“ mail.smtp.port”,d_port);

props.put(“ mail.smtp.starttls.enable”,“ true”);

props.put(“ mail.smtp.auth”,“ true”);

props.put(“ mail.smtp.debug”,“ true”);

props.put(“ mail.smtp.socketFactory.port”,d_port);

props.put(“ mail.smtp.socketFactory.class”,“ javax.net.ssl.SSLSocketFactory”);

props.put(“ mail.smtp.socketFactory.fallback”,“ false”);

SecurityManager安全性= System.getSecurityManager();

尝试

{

身份验证器auth =新的SMTPAuthenticator();

会话会话= Session.getInstance(props,auth);

session.setDebug(true);

MimeMessage msg =新的MimeMessage(会话);

msg.setText(m_text);

msg.setSubject(m_subject);

msg.setFrom(new InternetAddress(d_email));

msg.addRecipient(Message.RecipientType.TO,新的InternetAddress(m_to));

Transport.send(msg);

}

捕获(异常混合)

{

mex.printStackTrace();

}

}

公共静态void main(String [] args)

{

Main blah = new Main();

}

私有类SMTPAuthenticator扩展了javax.mail.Authenticator

{

公共PasswordAuthentication getPasswordAuthentication()

{

返回新的PasswordAuthentication(d_email,d_password);

}

}

}

回答:

给定的代码段可以在我的Gmail帐户上正常运行,因此此问题出在其他地方。您是否遵循错误消息中给出的链接?它包含以下提示:

  • 确保您输入了完整的电子邮件地址(例如,username@gmail.com)
  • 重新输入密码以确保密码正确。请记住,密码区分大小写。
  • 确保您的邮件客户端未设置为过于频繁地检查新邮件。如果您的邮件客户端每隔10分钟检查一次新邮件不止一次,则客户端可能会反复请求您的用户名和密码。

特别是最后一点很重要。Google在这方面非常严格。例如,如果您尝试在一分钟内以编程方式连接Gmail

10次以上,则可能已经被阻止。稍稍耐心,一段时间后它将变得通畅。

如果您希望在发送邮件方面有更大的自由度,建议您寻找专用的邮件主机或设置自己的邮件服务器,例如Apache James或Microsoft

Exchange。我已经在您以前的问题之一中对此做了详细回答。

以上是 带有Gmail的JavaMail:535-5.7.1不接受用户名和密码 的全部内容, 来源链接: utcz.com/qa/412843.html

回到顶部