首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache JAMES: Gmail说从我的服务器发送的电子邮件没有经过TLS加密

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

Stack Overflow用户
提问于 2019-04-05 06:16:17
回答 2查看 514关注 0票数 2

当我从Apache JAMES SMTP服务器向我的Gmail地址发送电子邮件时,Gmail会收到电子邮件,但显然不是通过TLS加密。Gmail显示了一个红色的锁形图标,上面写着“我的服务器没有加密这封邮件。”

我已经为我的Apache JAMES SMTP服务器启用了TLS。以下是我的smtpserver.xml中的相关部分:

代码语言:javascript
复制
<tls socketTLS="false" startTLS="true">
    <keystore>[my-jks-file]</keystore>
    <secret>[my-jks-password]</secret>
    <provider>org.bouncycastle.jce.provider.BouncyCastleProvider</provider>
</tls>

我也尝试过使用

代码语言:javascript
复制
<tls socketTLS="true" startTLS="false">

相反,它并没有解决问题。

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

为什么电子邮件没有加密?

EN

回答 2

Stack Overflow用户

发布于 2019-10-18 17:55:59

我也遇到了同样的问题,我试图通过Apache James从电子邮件客户端推送电子邮件到Gmail,而Gmail报告说它们没有被安全地接收到。

https://james.apache.org/server/3/dev-provided-mailets.html文档和RemoteDelivery.java源代码指出,RemoteDelivery包含两个属性:

  • STARTTLS :一个布尔值(true/false),指示在发出任何login命令之前,是否使用STARTTLS命令(如果服务器支持)将连接切换到受TLS保护的连接。默认值为false.
  • sslEnable:,这是一个布尔值(true/false),指示除非显式覆盖,否则是否使用SSL连接和使用SSL端口。默认值为false。

startTLS似乎是这里的关键,当詹姆斯协商连接到Gmail的服务器时,如果Gmail允许的话,它应该尝试将不安全的连接升级到安全的连接。

我正在运行Apache James 2.3.2,并在/path/to/James/apps/james/SAR.INF/conf.xml文件中的Remove delivery部分下:

代码语言:javascript
复制
<mailet match="All" class="RemoteDelivery"> 

我尝试将属性设置为true

代码语言:javascript
复制
<startTLS>true</startTLS>
<sslEnable>true</sslEnable>

然而,James仍然没有向Gmail发送安全电子邮件。所以我没办法了。

仅供参考,在Apache James版本3.4中,RemoteDelivery配置似乎被重新定位到conf/mailtainer.xml文件中。

票数 1
EN

Stack Overflow用户

发布于 2021-09-18 09:01:25

SocketTLS和startTLS只影响James入站邮件的加密方式,James发送的邮件加密会影响gmail红锁的加密,需要额外配置。测试结果邮件在Gmail中传递:"security: Standard encryption (TLS)“。我的配置(Apache James版本:2.3.2)如下:

代码语言:javascript
复制
<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代码中设置属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55525699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档