当我从我的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。
为什么不对电子邮件进行加密?
答案 0 :(得分:0)
我也遇到了同样的问题,试图将电子邮件客户端中的电子邮件通过Apache James推送到Gmail,而Gmail报告该邮件没有被安全接收。
根据我对Apache James文档和源代码的了解,RemoteDelivery mailet负责将电子邮件发送到配方电子邮件服务器。 https://james.apache.org/server/3/dev-provided-mailets.html doc和RemoteDelivery.java源代码表示RemoteDelivery包含两个属性:
startTLS似乎是这里的关键,当James协商与Gmail服务器的连接时,如果Gmail允许,应尝试将不安全的连接升级为安全的连接。
我正在运行Apache James 2.3.2,并在/path/to/James/apps/james/SAR.INF/conf.xml文件中的“删除传递”部分下:
<mailet match="All" class="RemoteDelivery">
我尝试将设置属性设置为true
<startTLS>true</startTLS>
<sslEnable>true</sslEnable>
但是,詹姆斯仍然没有向Gmail发送安全的电子邮件。所以我没主意了。
Apache James 3.4版中的FYI,RemoteDelivery配置似乎已重定位到conf / mailcontainer.xml文件。