“线程中的异常”;“主要”;javax.mail.AuthenticationFailedException

“线程中的异常”;“主要”;javax.mail.AuthenticationFailedException,java,email,jakarta-mail,Java,Email,Jakarta Mail,我用于发送简单邮件的代码: import javax.mail.*; import javax.mail.internet.*; import java.util.*; import java.io.*; import javax.activation.DataHandler; import javax.activation.FileDataSource; public class SendMailUsingAuthentication { public static fina

我用于发送简单邮件的代码:

import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import java.io.*;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;

public class SendMailUsingAuthentication
    {
    public static final String SMTP_HOST_NAME = "smtp.gmail.com"; 
    public static final String SMTP_AUTH_USER = "username@gmail.com";
    public static final String SMTP_AUTH_PWD = "password";

    public static final String emailMsgTxt ="error found wgile clicking on an element";
    public static final String emailSubjectTxt ="Test Email";
    public static final String emailFromAddress ="hiphop.sujai@gmail.com";

    public static final String[] emailList = {"receiver.username@gmail.com"};

public void postMail(String recipients [], String subject, String message, String from) throws MessagingException

    {
        boolean debug = false;

        Properties props = new Properties();

        props.put("mail.smtp.starttls.enable","true");
        props.put("mail.smtp.host", SMTP_HOST_NAME);
        props.put("mail.smtp.auth", "true");

        Authenticator auth = new SMTPAuthenticator();
        Session session = Session.getDefaultInstance(props, auth);
        session.setDebug(debug);

        Message msg = new MimeMessage(session);

        InternetAddress addressFrom = new InternetAddress(from);
        msg.setFrom(addressFrom);

        InternetAddress[] addressTo = new InternetAddress[recipients.length];
        for (int i = 0; i < recipients.length; i++) {
            addressTo[i] = new InternetAddress(recipients[i]);
        }
        msg.setRecipients(Message.RecipientType.TO, addressTo);

        msg.setSubject(subject);

        msg.setContent(message, "text/plain");

        Transport.send(msg);
        System.out.println("Successfully sent mail to all users");

    }


private class SMTPAuthenticator extends javax.mail.Authenticator
{
    public PasswordAuthentication getPasswordAuthentication()
    {
        String username = SMTP_AUTH_USER;
        String password = SMTP_AUTH_PWD;
        return new PasswordAuthentication(username, password);
    }
}

}
import javax.mail.*;
导入javax.mail.internet.*;
导入java.util.*;
导入java.io.*;
导入javax.activation.DataHandler;
导入javax.activation.FileDataSource;
公共类SendMailUsingAuthentication
{
公共静态最终字符串SMTP\u HOST\u NAME=“SMTP.gmail.com”;
公共静态最终字符串SMTP\U AUTH\U USER=”username@gmail.com";
公共静态最终字符串SMTP_AUTH_PWD=“password”;
public static final String emailMsgTxt=“单击元素时发现错误”;
公共静态最终字符串emailSubjectTxt=“测试电子邮件”;
公共静态最终字符串emailFromAddress=“hiphop。sujai@gmail.com";
public static final String[]emailList={“receiver”。username@gmail.com"};
public void postMail(字符串收件人[],字符串主题,字符串消息,字符串发件人)引发MessaginException
{
布尔调试=假;
Properties props=新属性();
props.put(“mail.smtp.starttls.enable”、“true”);
props.put(“mail.smtp.host”,smtp\u主机名);
props.put(“mail.smtp.auth”,“true”);
Authenticator auth=新的SMTPAuthenticator();
Session Session=Session.getDefaultInstance(props,auth);
setDebug(debug);
Message msg=新的mimessage(会话);
InternetAddress addressFrom=新的InternetAddress(from);
msg.setFrom(addressFrom);
InternetAddress[]addressTo=新的InternetAddress[recipients.length];
for(int i=0;i
当我运行上面的代码时,我得到了以下异常,我提供的用户名和密码都是正确的。我也试着只输入用户名而不添加@gmail.com,但仍然不起作用

Exception in thread "main" javax.mail.AuthenticationFailedException: 534-5.7.14
<https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbvTi
534-5.7.14 QLG6LXdGFhnbFAdBRTtZO4ynMurcJa7KsqyOjGLcdS9lAyFP42I6l75P9B_90NPxQr-Bj-
534-5.7.14 0Yzk9vWoigAtOgTD3_D4vp4fEJ7C8oCtFTj4kRJfRJwJJvgPzdZ7ujc1zNyksYMYhLBaIP
534-5.7.14 LpYpcxJKLz90-rBx5NdWeJTu_1U1FENAX4QxVjsYaeeuJxMjfk6c1aZBMm2e485o3PV2H4
534-5.7.14 9rQ-6HA> Please log in via your web browser and then try again.
534-5.7.14 Learn more at
534 5.7.14 https://support.google.com/mail/bin/answer.py?answer=78754
om7sm11753908pdb.61 - gsmtp

 at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate
(SMTPTransport.java:648)
 at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:583)
 at javax.mail.Service.connect(Service.java:313)
 at javax.mail.Service.connect(Service.java:172)
 at javax.mail.Service.connect(Service.java:121)
 at javax.mail.Transport.send0(Transport.java:190)
 at javax.mail.Transport.send(Transport.java:120)
 at SendMailUsingAuthentication.postMail(SendMailUsingAuthentication.java:87)
 at Capture_Screen.main(Capture_Screen.java:32)
线程“main”javax.mail.AuthenticationFailedException中的异常:534-5.7.14 请通过web浏览器登录,然后重试。 534-5.7.14了解更多信息,请访问 534 5.7.14 https://support.google.com/mail/bin/answer.py?answer=78754 om7sm11753908pdb.61-gsmtp 在com.sun.mail.SMTPTransport$Authenticator.authenticate上 (SMTPTransport.java:648) 在com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:583)上 在javax.mail.Service.connect(Service.java:313) 在javax.mail.Service.connect(Service.java:172) 在javax.mail.Service.connect(Service.java:121) 在javax.mail.Transport.send0(Transport.java:190) 在javax.mail.Transport.send(Transport.java:120) 在SendMailUsingAuthentication.postMail(SendMailUsingAuthentication.java:87) 在Capture\u Screen.main(Capture\u Screen.java:32)
我也有同样的问题。事实证明,谷歌阻止了可疑的邮件账户访问。我刚在浏览器中登录到gmail,窗口顶部有一条错误/警告消息提醒我可疑活动。单击消息后,我能够允许来自“可疑”主机的连接,该主机实际上是我在AWS上运行的应用程序。

我也遇到了同样的问题。结果,谷歌阻止了可疑的访问邮件帐户的尝试。我刚在浏览器中登录到gmail,窗口顶部有一条错误/警告消息提醒我可疑活动。单击消息后,我能够允许来自“可疑”主机的连接,该主机实际上是我在AWS上运行的应用程序。

单击链接 并启用不太安全的应用程序。 然后从java访问…它工作…

单击链接 并启用不太安全的应用程序。
然后从java访问…它工作…

这背后的原因是Gmail检测到一种不太安全的身份验证方法,所以他们给出了身份验证错误。他们这样做是为了你的安全

您可以使用更安全的身份验证,如OAuth 2.0


还有一种方法允许不太安全的身份验证。它可以在您的Gmail帐户的安全设置下启用。

这背后的原因是Gmail检测到一种不太安全的身份验证方法,因此他们会给出身份验证错误。他们这样做是为了你的安全

您可以使用更安全的身份验证,如OAuth 2.0


还有一种方法允许不太安全的身份验证。它可以在Gmail帐户的安全设置下启用。

属性
“mail.smtp.port”
在哪里???看看这和硒有什么关系?!?!属性“mail.smtp.port”在哪里???看看这和硒有什么关系?!?!虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-非常感谢您的指导-Kometen虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能无效。-非常感谢您的指导-kometen