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

java mail API中的身份验证过程中出现错误

汪晨
2023-03-14

以下是我的java mail API代码:

import java.io.File;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
import javax.mail.internet.MimeMessage.RecipientType;
import javax.activation.*;

import hostel.BabyAuthenticator;

class BabyAuthenticator extends Authenticator
{
   @Override
   protected PasswordAuthentication

   getPasswordAuthentication() 
   {
     PasswordAuthentication pa = new 
     PasswordAuthentication("my email-id","password of my account"); 

     return pa;
   }
}

我尝试了2-3个不同的电子邮件id作为发件人id。。但仍然会发生错误。

  public class SendMail {
    public static void main(String[] args) {
      try 
      {
        Properties p = new Properties();

        p.put("mail.smtp.host","smtp.gmail.com");
        p.put("mail.smtp.port","587");
        p.put("mail.smtp.starttls.enable","true");
        p.put("mail.smtp.auth","true");
        p.put("mail.smtp.ssl.trust", "smtp.gmail.com");

        BabyAuthenticator auth = new BabyAuthenticator();
        Session session = Session.getInstance(p,auth);

        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress("sender's email id"));

        InternetAddress receiver1 = new InternetAddress("receiver's email id");
        InternetAddress[] rcvrs = {receiver1};

        // specify the the type of Recipients
        message.addRecipients(RecipientType.TO,rcvrs);

        // provide the subject of email
        message.setSubject("First mail");

        // create object of MimeBodyPart to denote the body parts of mail 
        MimeBodyPart part1 = new MimeBodyPart();

        // associate some text to the body part 
        part1.setContent("<i style='color : blue'>"+ "This is my first mail"+" 
            </i>","text/html");

        MimeMultipart allParts = new MimeMultipart();

        allParts.addBodyPart(part1);
        message.setContent(allParts);
        Transport.send(message);

        // show message on console
        System.out.println("Mail has been sent to the mail server...");  
      } 
      catch (Exception e) 
      {
       System.out.println("Some error has occured, and error is "+e);
      }
  }
} 

下面是代码的输出:

发生了一些错误,错误为javax。邮政AuthenticationFailedException:535-5.7.8不接受用户名和密码。在535 5.7.8了解更多信息https://support.google.com/mail/?p=BadCredentialsi72sm13717325pfj。147-gsmtp

共有1个答案

邰棋
2023-03-14

我也遇到了这个问题,并通过以下方式解决了这个问题:

  • 允许不太安全的应用程序访问您的谷歌帐户了解更多
  • 切换到网络提供商,是的,这是真的,我尝试了3个网络提供商,发送/接收邮件适用于2个,但不适用于其他一个,所以我建议您也尝试切换网络提供商。
 类似资料:
  • 问题与Azure相关,即使用户正在积极使用应用程序,也会出现Easy Auth过期的情况。根据分享的解释,简单的身份验证机制似乎并不适合Azure Web应用上托管的SPA?MS是否可以在官方文档下添加提到的选项-“https://docs.microsoft.com/en-in/Azure/app-service/app-service-authentication-overview?toc=%

  • 本文向大家介绍asp.net mvc中Forms身份验证身份验证流程,包括了asp.net mvc中Forms身份验证身份验证流程的使用技巧和注意事项,需要的朋友参考一下 验证流程 一、用户登录 1、验证表单:ModelState.IsValid 2、验证用户名和密码:通过查询数据库验证 3、如果用户名和密码正确,则在客户端保存Cookie以保存用户登录状态:SetAuthCookie     1

  • 我正在进行JDBC身份验证,当我尝试访问API时,它会在不询问用户名和密码的情况下给出“禁止”。 这是我的安全配置。 当我给出正确的身份验证时,我无法登录,错误是, 模型实体为: 数据库中的条目是 用户表 user_id名密码 1 jack 角色表 role_id角色 1 ADMIN 2 USER 3 LEAD user_role表 user_idrole_id 1 1 1 2 1 3

  • 问题内容: 如何在Elasticsearch中定义安全性访问?我有elasticsearch-head插件,但是您的访问不需要任何安全性。 问题答案: 不再积极支持此答案中提到的插件。 elasticsearch中没有内置的访问控制。因此,您需要设置一个反向代理(这是一个博客文章,介绍如何设置nginx),使用第三方的Elasticsearch插件之一,例如https://github.com/A

  • 我将尝试对 socket.io 上的连接进行身份验证。 目前,用户首先通过REST API进行身份验证,然后,我向用户发送一个,其中包含经过身份验证的用户的用户名。打开客户端和服务器之间的连接后,我的计划是从连接的套接字列表中临时删除该套接字,以防止在执行身份验证时在服务器之间接收和发送数据。 在这个身份验证中,我验证令牌,如果令牌有效,我将套接字的id重新添加到已连接套接字的列表中。唯一的问题是

  • 尝试将Azure AD身份验证添加到具有. net核心2.1后端的Angular 7 webapp。 然而,我在请求过程中收到了CORS错误。 “访问位于的XMLHttpRequest”https://login.microsoftonline.com/.......“(重定向自”https://localhost:5001/api/auth/login“)起源”https://localhost