Java邮件-不通过Gmail发送电子邮件

Java邮件-不通过Gmail发送电子邮件,java,jsp,jakarta-mail,Java,Jsp,Jakarta Mail,我正在尝试执行以下代码集,但没有效果。我正在用我的Gmail帐户来做这个。我禁用了两步验证,并允许打开安全性较低的应用程序,但我一直收到错误: javax.mail.AuthenticationFailedException:534-5.7.14 我所需要做的就是启用两步验证,然后为应用程序生成应用程序密码。感谢所有回应的人。:) 你读了吗?问题不在于代码。它工作得很好。权限似乎有问题。对于异常,您收到的完整消息是什么?如有必要,请张贴。如果邮件包含指向google帮助页面的URL,您是否阅读了

我正在尝试执行以下代码集,但没有效果。我正在用我的Gmail帐户来做这个。我禁用了两步验证,并允许打开安全性较低的应用程序,但我一直收到错误:

javax.mail.AuthenticationFailedException:534-5.7.14


我所需要做的就是启用两步验证,然后为应用程序生成应用程序密码。感谢所有回应的人。:)

你读了吗?问题不在于代码。它工作得很好。权限似乎有问题。对于异常,您收到的完整消息是什么?如有必要,请张贴。如果邮件包含指向google帮助页面的URL,您是否阅读了该邮件并按照说明进行了操作?唉,我发现了问题。我需要在设置两步验证后生成应用程序密码。真不敢相信我错过了。非常感谢你们的回复!!你能解释一下你是怎么做到的吗?我的意思是,启用两步并生成一个应用程序pwd。谢谢你advance@Aldeguer您必须先进行验证,然后再进行“两步验证”。一旦你到了那里,使用电话号码启用它。完成此操作后,“应用程序密码”将显示在两步验证链接下。单击该按钮,然后您可以在那里创建密码。
public void sendEmail()
{
    try
    {
        Properties props = new Properties();
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.port", "587");

        Session session = Session.getInstance(props, new javax.mail.Authenticator()
        {
            protected PasswordAuthentication getPasswordAuthentication()
            {
                return new PasswordAuthentication("example@gmail.com", "password");
            }
        });

        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress("example@gmail.com"));
        message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("example@company.com"));
        message.setSubject("Testing Subject");
        message.setText("Testing Text");

        Transport.send(message);

        System.out.println("Mail Sent!");

    } 

    catch (Exception ex)
    {
        ex.printStackTrace();
    }
}