当前位置: 首页 > 知识库问答 >
问题:

谷歌是否有办法禁用“不太安全的应用”?

仲皓君
2023-03-14

因此,自5月31日以来,谷歌已经禁用了“不太安全的应用程序”选项,因此我一直在使用Java mail API,而且自从更新以来,我再也不能使用Gmail smtp发送电子邮件了。

这是我遇到的错误:

javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8  https://support.google.com/mail/?p=BadCredentials n13-20020a5d400d000000b0020ff7246934sm4970874wrp.95 - gsmtp

我切换到outlook邮件,它似乎工作正常,但我想知道是否有办法使用Gmail帐户

不太安全的应用程序

共有3个答案

汪修诚
2023-03-14

谢谢你的重播!我已通过以下操作修复了此问题:

我启用了“Windows机器的应用程序密码”,然后我简单地将密码从电子邮件密码更改为谷歌生成的密码

并将代码更改为:

public class JavaMailUtil {
public static void sendMail(String recepient,String order) throws Exception {

    Properties properties=new Properties();
    properties.put("mail.smtp.auth", "true");
    properties.put("mail.smtp.starttls.enable", "true");
    properties.put("mail.smtp.host", "smtp.gmail.com");
    properties.put("mail.smtp.port", "587");
    String myAccountEmail="yourEmailAddress@gmail.com";
    String password="Generated Windows machine password from google";
    Session session=Session.getInstance(properties, new Authenticator() {
        @Override
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(myAccountEmail, password);
        }
    });
    
    Message message=prepareMessage(session,myAccountEmail,recepient,order);
    Transport.send(message);
    System.out.println("Message Sent successfully");
}

private static Message prepareMessage(Session session,String from,String to,String orderInfo) {
    Message message = new MimeMessage(session);
    try {
        
        message.setFrom(new InternetAddress(from));
        message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));a
        message.setSubject("Your subject here");
        message.setText(");
        return message;
    } catch (AddressException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

}

葛承嗣
2023-03-14

现在,您不能再在Googles smtp服务器上使用登录名和密码,唯一的选择就是使用XOauth2

我以前从未使用过雅加达,但它似乎支持它。您应该研究OAuth2支持

Properties props = new Properties();
props.put("mail.imap.ssl.enable", "true"); // required for Gmail
props.put("mail.imap.auth.mechanisms", "XOAUTH2");
Session session = Session.getInstance(props);
Store store = session.getStore("imap");
store.connect("imap.gmail.com", username, oauth2_access_token);

选项二是转到您的谷歌帐户并生成应用程序密码

运行代码时使用生成的密码而不是实际的用户密码。主要问题是不知道谷歌将继续支持应用程序密码多长时间。

朱和惬
2023-03-14

您可以尝试通过“应用密码”进行认证。

在您的Google帐户上:

>

  • 将“两步验证”设置为两步验证

    创建16个字符的“应用密码”(如何创建应用密码)-

    使用16个字符的密码代替Google帐户密码

    MailMessage mail = new MailMessage();
    foreach (string receiver in DolociPrejemnike())
        mail.To.Add(receiver);
    mail.From = new MailAddress("app_gmail@gmail.com", "No replay"); //pošiljatelj (vedno enak)
    mail.Subject = SetSubject();
    mail.Body = SetBody();
    mail.IsBodyHtml = true;
    
    SmtpClient smtp = new SmtpClient();
    smtp.Host = "smtp.gmail.com";
    smtp.Port = 587;
    smtp.UseDefaultCredentials = true;
    smtp.Credentials = new System.Net.NetworkCredential("app_gmail@gmail.com", "xtqapucsmyvqmvxp"); // Enter seders User name and password  
    smtp.EnableSsl = true;
    smtp.Send(mail);
    

  •  类似资料:
    • 为什么谷歌认为我的Django应用程序请求通过SMTP(SMTP.gmail.com)发送电子邮件是不安全的?阅读他们的安全标准并没有多大帮助: 更安全的应用程序如何帮助保护您的帐户当第三方应用程序符合我们的安全标准时,您可以: 在连接Google帐户之前,请查看您对应用程序的帐户访问级别允许应用程序仅访问您Google帐户的相关部分,如您的电子邮件或日历将您的Google帐户连接到应用程序,而不

    • 我正在使用中的OpenSSL库和Indy POP3,它可以在Android 7上从Gmail检索电子邮件,但我必须打开Gmail的“允许不太安全的应用程序”选项。有没有办法在不打开此选项的情况下登录Gmail?

    • 在开发过程中,我们在NodeEmailer中使用Gmail凭据发送测试电子邮件。我们今天尝试发送一个与昨天配置相同的,但收到以下错误: 我做了一些研究,发现我应该打开“不太安全的应用程序”,但我找不到设置。 当我访问时https://myaccount.google.com/lesssecureapps,我得到“无法读取设置”

    • 上述代码的结果是: 已打开。服务帐户客户端 ID 在 GSuite 中使用适当的作用域进行授权。 服务帐户适用于普通凭据。它只适用于委托凭证。 我在我们的域中尝试了不同的API(范围)和不同的用户。 我有一个同事试图从头开始编写一个样本,他得到了同样的东西。

    • 有没有办法在Google App Engine中部署“面向内部”的应用程序。AWS提供了这一功能,Azure也提供了这一功能。 这方面的GCP是多少?App Engine Flexible Environment似乎是答案,但我找不到关于Flexible Environment是否真的是托管面向intranet的应用程序的方法的明确文档。GCP是否有人可以提供建议? 使现代化 我最近测试了丹推荐的

    • 如果黑客反编译了我的APK,他能从这个文件中看到我的API密钥吗?我不担心我的源代码存储库。我只是担心黑客能从我的APK上看到这个API密钥。我试图加密这个文件,并在运行时解密它,但有一些问题