JavaMail 与 MS Exchange:服务器和客户端均不支持身份验证机制

2023-11-21

我已经尝试从 Grails 应用程序发送邮件好几天了,但没有成功。我在用着:

  • 圣杯 1.3.7
  • 邮件1.0插件
  • spring-security-core 1.2.6 插件
  • 雄猫7.0.23

具体来说,我尝试从 Tomcat 服务器上部署的应用程序通过端口 25 发送邮件,无需身份验证,无需 SSL。

我尝试从部署该应用程序的 VMWare 虚拟机上使用 telnet 发送消息,但失败了。

这是我发送邮件的课程:

public boolean sendMessage(String to, String msgSubject, String msgText) 
{
    String host = "mail.mydomain.com";
    String username = "[email protected]"; // your authsmtp username
    String password = "mypassword" // your authsmtp password
    String from = "[email protected]";

    Properties props = System.getProperties();
    props.put("mail.smtp.host", host);
    props.put("mail.smtp.user", username);
    props.put("mail.smtp.password", password);
    props.put("mail.smtp.port", "25"); // thish is the port recommended by authsmtp
    props.put("mail.smtp.auth", "false");

    Session session = Session.getDefaultInstance(props, null);
    MimeMessage message = new MimeMessage(session);
    message.setFrom(new InternetAddress(from));

    InternetAddress to_address = new InternetAddress(to);
    message.addRecipient(Message.RecipientType.TO, to_address);

    message.setSubject(msgSubject);
    message.setText(msgText);
    Transport transport = session.getTransport("smtp");
    transport.connect(host, username, password);
    transport.sendMessage(message, message.getAllRecipients());
    transport.close();
    return true;
}

这是错误堆栈跟踪:

javax.mail.AuthenticationFailedException: No authentication mechansims supported by both server and client

at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:590)

at javax.mail.Service.connect(Service.java:291)

at javax.mail.Service.connect(Service.java:172)

at javax.mail.Service$connect.call(Unknown Source)

at org.helpdesk.MymailService.sendMessage(MymailService.groovy:37)

at org.helpdesk.MymailService$sendMessage.call(Unknown Source)

at org.helpdesk.RequestController$_closure13.doCall(RequestController.groovy:247)

at org.helpdesk.RequestController$_closure13.doCall(RequestController.groovy)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

我已经阅读了几十篇考虑此类问题的帖子,但我仍然没有设法解决问题。任何帮助表示赞赏。

*EDIT:*在没有身份验证的情况下,使用 javaMail 与 Exchange 服务器 SMTP 发送邮件是否可能会出现一些问题?


就我而言,我必须设置属性

"mail.smtp.ehlo"

to "false"

(除了添加设置属性"mail.smtp.auth" to "false"然而,这似乎是默认值这个链接)

设置前"mail.smtp.ehlo" to "false"我看到以下调试输出(通过设置属性启用"mail.debug" to "true"):

DEBUG SMTP: Attempt to authenticate using mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM 
DEBUG SMTP: mechanism LOGIN not supported by server
DEBUG SMTP: mechanism PLAIN not supported by server
DEBUG SMTP: mechanism DIGEST-MD5 not supported by server
DEBUG SMTP: mechanism NTLM not supported by server

然后得到相同的javax.mail.AuthenticationFailedException.

(在本例中,SMTP 服务器是 Microsoft 的服务器)

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

JavaMail 与 MS Exchange:服务器和客户端均不支持身份验证机制 的相关文章

随机推荐

  • 有没有更好的方法来确定 UITableViewCell 的正确大小?

    我有一个 UITableView 单元格 该单元格的大小将根据其内容 可能是几行文本 而变化 既然看起来 heightForRowAtIndexPath 被调用before我布局单元格 我只是通过在文本字符串上调用 NSString siz
  • 如何使用不同的tsconfig文件进行测试?

    在我的项目中我使用 2 个不同的 tsconfig 文件 tsconfig json tsconfig specs json 供测试用 我如何告诉 Intellij Idea 两者都使用 即在Settings Langauges Frame
  • PHP REST 下载文件

    我有一个具有这样功能的网络服务 app gt get downloadPdf function use app log example pdf res app gt response res Content Description File
  • 如何确定Apple Watch型号?

    The WKInterfaceDevice current model属性没有给出型号 对于 Apple Watch 该字符串的值为苹果手表 如何从 iOS 确定确切的 Apple Watch 型号 只是稍微更新了 Mathieu Vand
  • 在 SQL 中,如何将位掩码总计中的值拆分为逗号分隔的字符串

    我有一个位掩码值作为 int 存储在 sql 中 我想将该值转换为位掩码值中包含的值的逗号分隔列表 例如 结果可能如下所示 id name bitMaskValue values 1 Bob 5 1 4 2 Mary 13 1 4 8 3
  • 如何更改 Xamarin 表单导航页面中的背景颜色

    我正在尝试更改 navigationPage 中 navigationBar 的背景颜色我正在使用以下代码 using System using System using Xamarin Forms using System Collect
  • 要列出的 Pandas DataFrame 列[重复]

    这个问题在这里已经有答案了 我根据另一列中满足的条件从一列中提取数据子集 我可以得到正确的值 但它在 pandas core frame DataFrame 中 我如何将其转换为列表 import pandas as pd tst pd r
  • 从 android 将 JSONArray 发布到 WCF 服务

    我在将 JSONArray 值发布到我的 WCF 服务时遇到问题 当我从 Fiddler 或 Net Test Client 发布数据时 它工作正常 每次我尝试从我的 Android 应用程序发布时 我都会收到请求错误 这是我从 Andro
  • 如何在 MySQL 中正确使用 CASE..WHEN

    这是一个演示查询 注意它非常简单 仅在 base price 为 0 的情况下获取 但它仍然选择条件 3 SELECT CASE course enrollment settings base price WHEN course enrol
  • 如何在共享主机上安装 Composer?

    我有这些东西 文件http api odtu lu composer phar http api odtu lu phpinfo php FTP 访问 cPanel FreeBSD 上的 Cron 作业 PHP Perl CGI BIN P
  • Python 相当于 Ruby 的 .select

    我有一个列表 数组 我们称之为x 我想创建一个新的列表 数组 我们称之为这个z 从元素中x符合某种条件 在 Ruby 中 您可以通过调用列表 数组上的 select 方法来做到这一点 如下所示 x 1 2 3 4 5 6 7 8 9 10
  • 延迟加载单例:双重检查锁定与按需初始化持有者习惯用法

    我需要在并发环境中延迟加载资源 加载资源的代码应该只执行一次 Both 双重检查锁定 使用 JRE 5 和 volatile 关键字 和按需初始化持有者习惯用法似乎很适合这份工作 仅通过查看代码 按需初始化持有者习惯用法似乎更干净 更高效
  • Android onTouch 与 onClick 和 onLongClick

    我有一个自定义视图 其作用类似于按钮 我想在用户按下它时更改背景 当用户将手指移到外面或释放它时将背景恢复为原始状态 我还想处理 onClick onLongClick 事件 问题是 onTouch 要求我返回 trueACTION DOW
  • asp.net 5 mvc 6 loginUrl更改路径

    在 VS 2015 WebApplication 中创建新项目时 如果未授权 您将如何更改重定向登录 URL 路径 我创建了一个新区域 在其中创建了一个登录控制器 此登录控制器要求您获得授权 但是当尝试访问这些页面时 我被重定向到 Acco
  • UIViewContentMode模式指的是什么类型的内容?

    根据 UIView 的官方文档contentMode财产 The content mode specifies how the cached bitmap of the view s layer is adjusted when the v
  • 将操作栏更改为从 Fragment 内覆盖

    我有一个片段 片段 1 它被另一个片段 片段 2 替换 片段 1 被放置在堆栈上 我正在使用兼容模式 不是 ActionBarSherlock 这是我的问题 我希望操作栏在某些片段中显示为叠加 但在其他片段中则不然 具体来说 当显示片段 2
  • Ruby:在结构体中定义常量的语法

    考虑以下 正确的 Ruby 程序 class Outer Inner Struct new dummy do CONST abce def fun puts dummy end end end obj Outer Inner new 15
  • 最难逆向的 JavaScript 混淆器 [重复]

    这个问题在这里已经有答案了 我正在寻找目前最难逆向的 JavaScript 混淆器 如果它可以在自己的服务器上运行 则会加分 性能下降和代码膨胀都很好 用 Java 编写 然后使用混淆后的 JavaScript 运行字节码orto 这需要两
  • 如何将 Enum 的成员放入全局命名空间?

    Python 现在有一个 Enum 类型 3 4 中新增 与 PEP 435 还有向后移植 虽然命名空间是一件好事 但有时枚举更像常量 并且枚举成员应该位于全局 呃 模块 命名空间中 所以而不是 Constant Enum PI 3 14
  • JavaMail 与 MS Exchange:服务器和客户端均不支持身份验证机制

    我已经尝试从 Grails 应用程序发送邮件好几天了 但没有成功 我在用着 圣杯 1 3 7 邮件1 0插件 spring security core 1 2 6 插件 雄猫7 0 23 具体来说 我尝试从 Tomcat 服务器上部署的应用