当我从Apache JAMES SMTP服务器向我的Gmail地址发送电子邮件时,Gmail会收到电子邮件,但显然不是通过TLS加密。Gmail显示了一个红色的锁形图标,上面写着“我的服务器没有加密这封邮件。”
我已经为我的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通过了。
为什么电子邮件没有加密?
发布于 2019-10-18 17:55:59
我也遇到了同样的问题,我试图通过Apache James从电子邮件客户端推送电子邮件到Gmail,而Gmail报告说它们没有被安全地接收到。
https://james.apache.org/server/3/dev-provided-mailets.html文档和RemoteDelivery.java源代码指出,RemoteDelivery包含两个属性:
startTLS似乎是这里的关键,当詹姆斯协商连接到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发送安全电子邮件。所以我没办法了。
仅供参考,在Apache James版本3.4中,RemoteDelivery配置似乎被重新定位到conf/mailtainer.xml文件中。
发布于 2021-09-18 09:01:25
SocketTLS和startTLS只影响James入站邮件的加密方式,James发送的邮件加密会影响gmail红锁的加密,需要额外配置。测试结果邮件在Gmail中传递:"security: Standard encryption (TLS)“。我的配置(Apache James版本:2.3.2)如下:
<mail.smtp.port>25</mail.smtp.port>
<mail.smtp.starttls.enable>true</mail.smtp.starttls.enable>
<mail.smtp.auth>false</mail.smtp.auth>
<mail.smtps.auth>false</mail.smtps.auth>
<mail.smtp.socketFactory.port>25</mail.smtp.socketFactory.port>
<mail.smtp.socketFactory.fallback>false</mail.smtp.socketFactory.fallback>
<mail.smtps.ssl.protocols>TLSv1.2</mail.smtps.ssl.protocols>
<mail.transport.protocol>smtp</mail.transport.protocol>
<mail.smtps.port>465</mail.smtps.port>
<mail.smtps.ssl.enable>true</mail.smtps.ssl.enable>
<mail.smtps.starttls.enable>false</mail.smtps.starttls.enable>
<mail.smtps.socketFactory.port>465</mail.smtps.socketFactory.port>
<mail.smtps.socketFactory.class>javax.net.ssl.SSLSocketFactory</mail.smtps.socketFactory.class>
<mail.smtps.socketFactory.fallback>false</mail.smtps.socketFactory.fallback>就像Christos的答案:Java mail cannot connect to smtp using tls or ssl一样,在java代码中设置属性。
https://stackoverflow.com/questions/55525699
复制相似问题