在java中发送电子邮件时抛出javax.mail.AuthenticationFailedException

2023-11-27

我是java初学者,我想用java发送电子邮件,因为我在Java中使用这段代码。但我的代码抛出了异常,我需要注意为什么......

这是异常的堆栈跟踪:

javax.mail.AuthenticationFailedException: 534-5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbsNX
534-5.7.14 No6jJbDc4l7fZ_WLdBD0sNHIIp_nLvplRMm0bYFBnZBF_XOyVvNSdd1FenDZJPwBTFQyRH
534-5.7.14 lriPK3myMm-dXkW3zK0-6XpO7BzI8hfRcByG1k7YiVzXlddTvs7QhjtgCWNcrzMBuPhoof
534-5.7.14 GjME2TgYzXJVHz5MV98nRnr_kq-kP7RmgOtX3IQHLwM5E8QGBC9-2THVQr_Ch_U0-1nZsc
534-5.7.14 yoPuNEw> 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 wr6sm26888533wjc.24 - gsmtp

    at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:892)
    at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:814)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:728)
    at javax.mail.Service.connect(Service.java:364)
    at javax.mail.Service.connect(Service.java:245)
    at SendEmail.sendFromGMail(SendEmail.java:50)
    at SendEmail.main(SendEmail.java:18)
sent

这是我的代码

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;

public class SendEmail {

    private static String USER_NAME = "me";
    private static String PASSWORD = "xyz";
    private static String RECIPIENT = "[email protected]";

    public static void main(String[] args) {
        String from = USER_NAME;
        String pass = PASSWORD;
        String[] to = { RECIPIENT };
        String subject = "Java send mail example";
        String body = "Welcome to JavaMail!";

        sendFromGMail(from, pass, to, subject, body);
        System.out.println("sent");
    }

    private static void sendFromGMail(String from, String pass, String[] to, String subject, String body) {
        Properties props = System.getProperties();
        String host = "smtp.gmail.com";
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.host", host);
        props.put("mail.smtp.user", from);
        props.put("mail.smtp.password", pass);
        props.put("mail.smtp.port", "587");
        props.put("mail.smtp.auth", "true");

        Session session = Session.getDefaultInstance(props);
        MimeMessage message = new MimeMessage(session);

        try {
            message.setFrom(new InternetAddress(from));
            InternetAddress[] toAddress = new InternetAddress[to.length];

            for( int i = 0; i < to.length; i++ ) {
                toAddress[i] = new InternetAddress(to[i]);
            }

            for( int i = 0; i < toAddress.length; i++) {
                message.addRecipient(Message.RecipientType.TO, toAddress[i]);
            }

            message.setSubject(subject);
            message.setText(body);
            Transport transport = session.getTransport("smtp");
            transport.connect(host, from, pass);
            transport.sendMessage(message, message.getAllRecipients());
            transport.close();
        }
        catch (AddressException ae) {
            ae.printStackTrace();
        }
        catch (MessagingException me) {
            me.printStackTrace();
        }
    }
}

我有同样的问题! Google 会阻止访问不太安全的应用程序。

这就是我解决它的方法:

  • 从浏览器登录该电子邮件帐户。
  • Go to https://www.google.com/settings/security/lesssecureapps
  • 你会看见Turn off or Turn on。点击Turn on,然后重试您的代码。现在应该可以了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在java中发送电子邮件时抛出javax.mail.AuthenticationFailedException 的相关文章

随机推荐

  • 中 ANYSIZE_ARRAY 的用途是什么?

    目的是什么ANYSIZE ARRAY 位于WinNT h 我在 2004 年看到一篇关于它的 MSDN 博客文章 但它对我来说没有意义 我假设你正在谈论这篇博文 当可变大小 编译时未知 数组是结构的一部分时 通常使用它 typedef st
  • SQL 视图上的 LINQ select 得到错误答案

    我有一个 SQL 视图 它生成 8 列的响应 它相当复杂 所以我不会在这里列出它 它不会对我试图理解的问题增加太多内容 当我直接使用此查询在 SQL Manager 中查询视图时 SELECT FROM GPPS dbo PartIndex
  • 如何将 R 对象的定义导出为纯文本以便其他人可以重新创建它?

    假设您在 R 中有这些数据 并且您想在 stackoverflow 上发布问题 为了让其他人能够最好地帮助您 如果他们能够拥有您的对象 数据框 矢量等 的副本来使用 那就太好了 假设您的数据位于名为 site data 的数据框中 gt s
  • 了解 Java 泛型中的通配符

    我不确定为什么以下代码中的最后一条语句是非法的 Integer应该是一个子类型 那么为什么我不能将它分配给b List
  • 在 matlab 中绘制一堆 3d 线的最有效方法

    我需要在 matlab 中绘制 3d 线列表 最快的方法是什么 我目前正在做类似的事情 edges is a MX2 matrix holding the list of edges points are the vertices coor
  • 在php/mysql中导入带有图像的excel文件

    我想制作一个导入脚本 允许用户将他们的 excel 文件 扩展名不重要 上传到我的 php 应用程序 应用程序应该识别一个项目列表 到目前为止一切顺利 这种情况下的困难在于 Excel 文件包含图像 我已阅读有关 phpexcel 库的信息
  • 使用 HTML5 将 1000 条记录插入 sqlite 时如何加快处理速度

    我是 HTML5 应用程序开发新手 在此 我想使用 HTML5 将 1000 条记录插入到 sqlite 数据库中 这个过程非常缓慢 如何在插入记录之前使用 BEGIN COMMIT 这样可以加快插入速度 请任何人指导我 提前致谢 请在ch
  • 反编译 APK 并在您的应用程序中使用其部分代码是否合法

    反编译 apk 并使用其部分代码是否合法 更具体地说 一个 URL 连接器 我还没学过 应用程序的其余部分 布局等 是我制作的 我可以发布此应用程序而不用担心法律问题吗 不管骗子说什么 反编译绝对合法 最多 您可能会因与软件相关的未经授权的
  • MySQL 是否有与 PHP 的 preg_replace 等效的工具?

    我有一个匹配 MySQL 中的字段 我认为我可以使用正则表达式 但 MySQL 似乎没有完成这项工作所需的功能 这是场景 我在 PHP 中有一个名为 url 的变量 假设此变量设置为字符串 article my article page 2
  • 最大化并行请求数 (aiohttp)

    tl dr 如何最大化可以并行发送的 http 请求数量 我正在从多个网址获取数据aiohttp图书馆 我正在测试它的性能 我发现在这个过程中的某个地方存在瓶颈 一次运行更多的网址并没有帮助 我正在使用这段代码 import asyncio
  • KineticJS 中的缩放和平移

    有没有一种方法可以使用 KineticJS 在画布上进行缩放和平移 我找到了这个图书馆Kineticjs视口 但只是想知道是否有其他方法可以实现这一目标 因为这个库似乎使用了很多额外的库 并且不确定哪些库是完成工作所绝对必需的 或者 我什至
  • Java 二进制兼容性问题:sun.font.FontManager 类变成接口

    我正在使用Lobo Java Web 浏览器库 它给了我一个例外 经过一些研究 我确定可能是由于该库是针对旧版本的 Java 进行编译的 代码如下 import java io IOException import org lobobrow
  • 特定时间和日期的 JavaScript 倒计时

    我正在使用 jQuery 插件将倒计时器放入我的网页中 目前控制计时器显示内容的代码是 插件的 JS 可以在这里查看 https github com objectivehtml FlipClock blob master js flipc
  • Flutter:TextEditingController 数组

    设置数组的最佳方法是什么TextEditingController扑扑中 我的意思是我需要获取一个值数组Textfield 1 到 n 值并发送到服务器 谁能帮助如何实现这一目标 I tried for int i 1 i lt 75 i
  • if(CONST==variable) 或 if(variable==CONST) 有什么区别?

    比较运算符的顺序有区别吗 define CONST VALUE 5 int variable if variable CONST VALUE Method 1 OR if CONST VALUE variable Method 2 这仅仅是
  • 抑制标准 ML 中的“val it”输出

    我正在用标准 ML SML NJ 编写一个 脚本 根据我的喜好设置交互式环境 该脚本所做的最后一件事是打印一条消息 表明一切顺利 本质上 最后一行是这样的 print SML is ready n 当我运行脚本时 一切顺利 但 SML 解释
  • 如何使用包含文件(例如 .css)的相对路径

    我有一个header php文件包含一个 css文件链接 当我 包含 时header php到不同文件夹中的另一个 php 文件中 css对此的 hrefheader php对于新的 php 文件来说不正确 我该如何申报href in my
  • 在 ReactJS 中更新数组中的对象的最佳方法是什么?

    如果您有一个数组作为状态的一部分 并且该数组包含对象 那么通过更改其中一个对象来更新状态的简单方法是什么 示例 根据react教程修改 var CommentBox React createClass getInitialState fun
  • var self = this; 是吗?一个糟糕的模式?

    我发现自己需要 var self this 我的 javascript 类 中有很多内容 虽然这种做法很常见 但感觉有点不对劲 我希望在这个问题中找到一种更好的方法来处理这个问题 或者让我相信这没什么问题 这是保持正确绑定的标准方法吗 我是
  • 在java中发送电子邮件时抛出javax.mail.AuthenticationFailedException

    我是java初学者 我想用java发送电子邮件 因为我在Java中使用这段代码 但我的代码抛出了异常 我需要注意为什么 这是异常的堆栈跟踪 javax mail AuthenticationFailedException 534 5 7 1