使用 javamail 发送邮件不起作用

2024-01-21

我正在尝试使用我的 Gmail 地址发送电子邮件。 我将 debug 设置为 true,这就是我得到的。

DEBUG: JavaMail version 1.4.1
DEBUG: not loading file: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/javamail.providers
DEBUG: java.io.FileNotFoundException: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/javamail.providers (No such file or directory)
DEBUG: !anyLoaded
DEBUG: not loading resource: /META-INF/javamail.providers
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
DEBUG: Tables of loaded providers
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]}
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]}
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: !anyLoaded
DEBUG: not loading resource: /META-INF/javamail.address.map
DEBUG: not loading file: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/javamail.address.map
DEBUG: java.io.FileNotFoundException: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/javamail.address.map (No such file or directory)

DEBUG: setDebug: JavaMail version 1.4.1
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 465, isSSL true

然后我什么都不做,没有错误/警告/....

我正在使用这些设置:

mail.smtp.auth=true
mail.debug=true
mail.smtp.host=smtp.gmail.com
[email protected] /cdn-cgi/l/email-protection
mail.smtp.password=MyOwnPassword
mail.transport.protocol=smtp
mail.smtp.port=465
mail.disable=false
mail.verbose=true
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory

我尝试了这些例子:

  1. http://adfblogs.blogspot.be/2012/01/sending-e-mail-from-adf-application.html http://adfblogs.blogspot.be/2012/01/sending-e-mail-from-adf-application.html
  2. 使用java发送电子邮件 https://stackoverflow.com/questions/3649014/send-email-using-java

都是同样的问题。我 100% 确定我的密码和电子邮件地址是正确的。

编辑: 我的代码(与第一个链接中的相同) nitialContext ic = new InitialContext(); 会话会话 = (会话) ic.lookup("mail/SugarCRMMailSession");

        Properties props = session.getProperties();

        String  to = emailID;

        String mailhost = props.getProperty("mail.smtp.host");
        String user = props.getProperty("mail.smtp.user");
        String password = props.getProperty("mail.smtp.password");
        String protocol = props.getProperty("mail.transport.protocol");

        String authorization = props.getProperty("mail.smtp.auth");
        String mailDisabled = props.getProperty("mail.disable");
        String verboseProp = props.getProperty("mail.verbose");
        String debugProp = props.getProperty("mail.debug");

        boolean sentDisabled = false;
        if(mailDisabled.equals("true"))
            sentDisabled = true;

        if(!sentDisabled){

            boolean auth = false;
            if(authorization.equals("true"))
                auth = true;

            boolean verbose = false;
            if(verboseProp.equals("true"))
                verbose = true;

            String mailer = "smtpsend";

            if(debugProp.equals("true"))
                session.setDebug(true);
            else
                session.setDebug(false);

            Message msg = new MimeMessage(session);
            msg.setFrom();      
            msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false));
            msg.setSubject(subject);
            msg.setContent(text, "text/html;charset=UTF-8");      
            msg.setHeader("X-Mailer", mailer);
            msg.setSentDate(new Date());

            SMTPTransport t = (SMTPTransport)session.getTransport(protocol);

            try {
                t.connect(mailhost, user, password);
                t.sendMessage(msg, msg.getAllRecipients());
            } finally {
                    t.close();
            }

             System.out.println("\nMail was sent successfully.");
        }else{
             System.out.println("Mail Sending is disabled.");
        }

这是您问题的完美解决方案,在这里下载 Mail api jar 表单

Gmail 的 API 邮件提供商 http://www.java2s.com/Code/Jar/j/Downloadjavamailsmtp142jar.htm

只需转到 Windows --> 首选项 --> Java --> 安装的 JRES -->

无论您使用什么 JRE,只需选择它并编辑,然后将该外部 jar 添加到该 JRE 中,然后单击“确定”,然后编译器将能够加载该 jar 文件。因此错误将得到解决。

Try it.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 javamail 发送邮件不起作用 的相关文章

随机推荐

  • parse_dates 如何与 pd.read_sql_query 一起使用

    从 MySQL 数据库检索数据时 Pandas parse date 应该如何工作 的文档熊猫0 23 https pandas pydata org pandas docs stable generated pandas read sql
  • DAX 中的递归

    我不知道这是否可能 但我希望能够创建一个计算列 其中每行都依赖于其上方的行 一个典型的例子是斐波那契数列 https en wikipedia org wiki Fibonacci number 其中序列由递归关系定义F n F n 1 F
  • 电子邮件地址的正则表达式不起作用

    我正在尝试使用以下代码检查某些电子邮件地址是否正确 NSPredicate regexMail NSPredicate predicateWithFormat SELF MATCHES if regexMail evaluateWithOb
  • 存储倒排索引

    我正在从事一个关于信息检索的项目 我使用 Hadoop Python 制作了完整倒排索引 Hadoop 将索引输出为写入文件的 单词 文档列表 对 为了快速访问 我使用上面的文件创建了一个字典 哈希表 我的问题是 如何在磁盘上存储这样一个具
  • 为什么属性“禁用”而不是“启用”

    我总感觉disabledHTML 属性
  • 为什么 ui.item.attr("id") 返回未定义的值?

    我正在处理之间的可排序 li of ul 但当我试图得到ui item attr id 我未定义 但其他变量运行良好 例如 this attr id and ui sender attr id 但我正在搜索的索引 ul 元素从哪里拖动 我的
  • Rails Gem Devise 是否有解决方案允许用户拥有多个电子邮件?

    我正在寻找一种解决方案 允许我的应用程序上的用户拥有超过 1 封电子邮件 这应该与 Facebook LinkedIn 和 Quora 类似 一个帐户可以有多个电子邮件地址 其中 1 个作为主要电子邮件地址 是否有可用的设备交钥匙解决方案
  • 正确的 ARIA 处理面包屑导航

    可以采取哪些措施来提高面包屑菜单的可访问性 类似于 ul class breadcrumbs li a href Home a li li a href news News a li li class unavailable a href
  • Blazor - Web 组件 - WebAssembly - 微前端

    我正在研究微前端并能够使用不同技术构建功能 到目前为止 创建 Web 组件并在 Monolith 上使用它们是我发现的最佳方法 研究创建 Web 组件并在不同服务中提供模块的不同方法是一种有趣的体验 使用 Blazor 查看 WebAsse
  • 为什么添加简单的 SQL 查询作为 Power BI 数据源会阻止本机查询折叠?

    我已经添加了SQL数据源 然后 我没有选择表 而是输入了以下查询 SELECT ID NAME AGE FROM STUDENTS 当我右键单击该步骤时 我看到本机查询选项被禁用 为什么添加简单的 SQL 查询作为 Power BI 数据源
  • MS Access 准备好的语句

    是否可以在 MS Access 中对 VBA 中的本地表执行准备好的语句 如下所示 UPDATE part SET part description WHERE part id 如果是这样 它是如何完成的 Dim db As DAO Dat
  • Java 正则表达式帮助:捕获键值对

    我正在尝试从具有以下形式的字符串中捕获键值对 a0 d235 a1 2314 com1 abcd com2 a b c d 使用来自的帮助这个帖子 https stackoverflow com questions 168171 regul
  • iOS - 循环单元格并检索数据

    抱歉 我对 iOS 开发还很陌生 我有一个UITableView从单个 XiB 笔尖拉出的单元进行设置 我在笔尖中创建了一个开 关开关 并且我试图保存开关的状态viewWillDisappear我拥有的细胞数量 准确地说是 6 个单元 如何
  • C# 中的 MemoryStream Xml 架构验证失败

    这是我的功能 如果将 MemoryStream 传递给 XmlReader 有时它不会验证正确的 xml 文件 我将 XmlDocument 对象存储在内存中 我想根据最终用户提供的 xsd 架构文件对其进行验证 ValidateSchem
  • 如果 .slideDown 超出浏览器底部,如何自动向上滚动页面?

    我有一个表格 当鼠标悬停在行上时 通过 jQuery SlideDown 显示每行的附加信息 当鼠标移开时 信息将通过向上滑动删除 这工作得很好 但是当我将鼠标悬停在页面上的最后一个项目上时 它会滑到浏览器窗口底部下方 如果用户使用鼠标滚轮
  • jar 清单中的绝对路径名与相对路径名

    我想引用固定位置的 jar 文件以供多个可执行 jar 文件使用 而不是在每个可执行文件中包含该 jar 文件 我有以下设置 效果很好 commons math3 3 6 1 jar 存在于目录 testgradle 中 TestGradl
  • 使用寄存器值作为搜索模式

    我希望使用寄存器的内容作为 Vim 中的搜索模式 我想从命令行执行此操作 因此我无法使用
  • Spring - AOP:@within异常:java.lang.IllegalArgumentException:错误引用的类型不是注释类型

    我是 AOP 和 AspectJ 的新手 我正在尝试围绕具有元素类型的自定义注释编写自定义逻辑TYPE 我还想使用注释下的参数在 around 方法内编写自定义逻辑 我收到下面提到的错误 我尝试阅读多个来源 大多数来源都与使用有关 anno
  • 如何在单元格中显示当前用户名?

    在我能找到的大多数在线资源中 通常会告诉我如何在 VBA 中检索此信息 有没有直接的方法可以在单元格中获取这些信息 例如 简单如 ENVIRON User 这没有用 根据下面链接中的说明 执行以下操作 在 VBA 中插入一个新模块并粘贴以下
  • 使用 javamail 发送邮件不起作用

    我正在尝试使用我的 Gmail 地址发送电子邮件 我将 debug 设置为 true 这就是我得到的 DEBUG JavaMail version 1 4 1 DEBUG not loading file System Library Ja