当前位置: 首页 > 面试题库 >

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

禹昊穹
2023-03-14
问题内容

尝试使用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。我已经在您以前的问题之一中对此做了详细回答。



 类似资料:
  • 当我尝试使用JavaMail API发送邮件时,会出现以下错误:

  • 我正在尝试使用以下功能测试应用程序从localhost发出的电子邮件: 但我有一个错误: 发送电子邮件。转到:171:smtp错误:535 5.7.8不接受用户名和密码。在5.7.8了解更多信息https://support.google.com/mail/?p=BadCredentialsa7sm5381413wmh。14-gsmtp联系人。go:38:错误seding联系我们表格535 5.7

  • 所以我有以下代码: 但当我尝试发送电子邮件时,它总是给出如下错误:错误:无效登录:535-5.7.8用户名和密码不被接受。在535 5.7.8了解更多信息https://support.google.com/mail/?p=BadCredentialsf67-v6sm75536287pfe。75-gsmtp 这是完整跟踪: 知道发生了什么以及如何解决这个问题吗?谢谢你。

  • 虽然使用modemailer发送邮件时只有少数帐户,但它工作正常,但对于某些帐户,即使凭据正确,它也会给出“无效登录:535-5.7.8用户名和密码不被接受。在535 5.7.8了解更多信息https://support.google.com/mail/?p=BadCredentials3sm51852778pfg。186-gsmtp“

  • 预期响应代码为250,但收到代码“535”,消息“535-5.7.8用户名和密码不被接受。有关详细信息,请访问535 5.7.8https://support.google.com/mail/?p=BadCredentialsz7sm6546905pgb。24-gsmt 尝试发送电子邮件时发生此错误

  • 当我尝试通过运行Laravel 4的网站发送电子邮件时,我会收到这个异常: 这是我的邮件配置: 我已经尝试了通过谷歌搜索这个问题找到的禁用链接,但没有什么不同。 有没有办法告诉谷歌“停止阻止这个IP,是我”?