Apache JAMES:Gmail说从我的服务器发送的电子邮件未经TLS加密

问题描述 投票:1回答:1

[当我从Apache JAMES SMTP服务器向我的Gmail地址发送电子邮件时,Gmail会收到电子邮件,但显然不是通过TLS加密的。 Gmail显示红色显示的锁定图标,上面写着“ [我的服务器]未加密此邮件”。电子邮件标题也不会指示通过TLS接收。

我已为我的Apache JAMES SMTP服务器打开TLS。这是我的smtpserver.xml的相关部分:

<tls socketTLS="false" startTLS="true">
    <keystore>[my-jks-file]</keystore>
    <secret>[my-jks-password]</secret>
    <provider>org.bouncycastle.jce.provider.BouncyCastleProvider</provider>
</tls>

我也尝试过使用

<tls socketTLS="true" startTLS="false">

相反,它不能解决问题。

[当我尝试使用https://www.checktls.com/TestReceiver测试我的Apache JAMES电子邮件地址时,报告会说所有内容(包括TLS)均已通过。使用https://mxtoolbox.com/diagnostic.aspx测试我的服务器域也表示已通过TLS。

为什么不对电子邮件进行加密?

gmail javamail james
1个回答
0
投票
根据我对Apache James文档和源代码的了解,RemoteDelivery mailet负责将电子邮件发送到配方电子邮件服务器。https://james.apache.org/server/3/dev-provided-mailets.htmldoc和RemoteDelivery.java源代码表示RemoteDelivery包含两个属性:

startTLS:布尔值(true / false),指示在发出任何登录命令之前,是否将STARTTLS命令(如果服务器支持)将连接切换到TLS保护的连接。默认值为false。

    sslEnable:布尔值(true / false),指示是否使用SSL连接和使用SSL端口,除非明确覆盖。默认值为false。
  • startTLS似乎是这里的关键,当James协商与Gmail服务器的连接时,如果Gmail允许,应尝试将不安全的连接升级为安全的连接。
  • 我正在运行Apache James 2.3.2,并且在/path/to/James/apps/james/SAR.INF/conf.xml文件中的Remove delivery部分下:

    <mailet match="All" class="RemoteDelivery">

    我尝试将设置属性设置为true

    <startTLS>true</startTLS>
    <sslEnable>true</sslEnable>
    

    但是James仍未向Gmail发送安全电子邮件。所以我没主意了。

    FYI在Apache James 3.4版中,RemoteDelivery配置似乎已重定位到conf / mailcontainer.xml文件。
  • © www.soinside.com 2019 - 2024. All rights reserved.