带有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