# 端口 465 的 SSL/TLS (Net::ReadTimeout) - 未公开的解决方案

**URL:** https://meta.discourse.org/t/ssl-tls-for-port-465-net-readtimeout-undocumented-solution/270632
**Category:** Self-hosting
**Tags:** email
**Created:** [2023年七月5日 11:20 UTC](https://meta.discourse.org/t/ssl-tls-for-port-465-net-readtimeout-undocumented-solution/270632 "2023-07-05T11:20:23Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![niccokunzmann](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/niccokunzmann/32/131771_2.png) [@niccokunzmann](https://meta.discourse.org/u/niccokunzmann)
#### Post date: [2023年七月5日 11:20 UTC](https://meta.discourse.org/t/ssl-tls-for-port-465-net-readtimeout-undocumented-solution/270632/1 "2023-07-05T11:20:23Z")

</div>

我尝试使用 cpanel 服务器设置电子邮件。我花了几个小时都失败了。

在 `app.yml` 中这样做奏效了：

> [@Cannot send email - problem with port 465](https://meta.discourse.org/t/cannot-send-email-problem-with-port-465/246004/9?u=niccokunzmann):
>
> Well, if @schungx is able to confirm that DISCOURSE\_SMTP\_FORCE\_TLS=true is indeed a solution, we can add that.

```plaintext
DISCOURSE_SMTP_FORCE_TLS: true

```

作为一个新的管理员，我对这个设置感到疑惑：

```plaintext
DISCOURSE_SMTP_ENABLE_START_TLS: true

```

有什么区别？为什么一个有效而另一个无效？如果真是这样：为什么 `DISCOURSE_SMTP_FORCE_TLS` 不也存在呢？

看起来 Thunderbird（电子邮件客户端）显示这三个选项：“无加密”、“STARTTLS”和“SSL/TLS”。所以，我想知道 `DISCOURSE_SMTP_FORCE_TLS` 是否意味着“SSL/TLS”，它是否可以包含在模板中。或者不行？

这些选项的文档记录如何？这样可以吗？是否有“保持模板简洁”的政策？

例如，我对 `DISCOURSE_SMTP_ADDRESS` 和 `DISCOURSE_SMTP_DOMAIN` 感到有些困惑，因为例如发送电子邮件的 `curl` 不需要 `DISCOURSE_SMTP_DOMAIN` 作为参数。

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [2023年七月5日 11:30 UTC](https://meta.discourse.org/t/ssl-tls-for-port-465-net-readtimeout-undocumented-solution/270632/2 "2023-07-05T11:30:26Z")

</div>

SSL 与 SMTP 的连接方式有两种。

1. 正常连接，通常通过端口 25 或 587，然后发出 STARTTLS 命令。这正是 `DISCOURSE_SMTP_ENABLE_START_TLS` 的作用。
2. 从一开始就使用 SSL 连接，通常通过端口 465。这正是 `DISCOURSE_SMTP_FORCE_TLS` 的作用。

---

<div class="post-metadata">

### Author: ![supermathie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/supermathie/32/507518_2.png) [@supermathie](https://meta.discourse.org/u/supermathie)
#### Post date: [2025年十一月11日 15:12 UTC](https://meta.discourse.org/t/ssl-tls-for-port-465-net-readtimeout-undocumented-solution/270632/3 "2025-11-11T15:12:35Z")

</div>

> [@niccokunzmann](#):
>
> 作为一名新管理员，我想了解一下这个设置：
> 
> ```plaintext
> DISCOURSE_SMTP_ENABLE_START_TLS: true
> 
> ```

在 [Reworking the emails:test rake task output](https://meta.discourse.org/t/reworking-the-emails-test-rake-task-output/387286?u=supermathie) 之后跟进：DISCOURSE\_SMTP\_ENABLE\_START\_TLS 不应该被覆盖，即使您正在使用隐式 TLS (`DISCOURSE_SMTP_FORCE_TLS`)。
