# “在没有 SMTP 的安装中出现邮件作业失败”

**URL:** <https://meta.discourse.org/t/there-are-email-jobs-that-failed-on-an-smtp-less-install/394573>\
**Category:** Support\
**Tags:** email, discourse-id\
**Created:** [2026年一月28日 19:16 UTC](https://meta.discourse.org/t/there-are-email-jobs-that-failed-on-an-smtp-less-install/394573 "2026-01-28T19:16:51Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)\
**Post date:** [2026年一月28日 19:16 UTC](https://meta.discourse.org/t/there-are-email-jobs-that-failed-on-an-smtp-less-install/394573/1 "2026-01-28T19:16:51Z")

</div>

我在仪表板上收到了此消息：

> 有 95 个电子邮件作业失败。请检查您的 app.yml 并确保邮件服务器设置正确。

该站点是在 `discourse.diy` 域上进行无 SMTP 安装。

Sidekiq 显示：

| 下次重试 | 重试次数 | 队列 | 作业 | 参数 | 错误 |
| --- | --- | --- | --- | --- | --- |
| 立即 | 0 | default | Jobs::CallDiscourseHub | {} | Jobs::HandledExceptionWrapper: Wrapped TypeError: Unsupported command argument type: TrueClass |
| 2 分钟后 | 5 | low | Jobs::UserEmail | {“type”=\>“digest”,“user\_id”=\>2,“current\_site\_id”=\>“default”} | Jobs::HandledExceptionWrapper: Wrapped ArgumentError: :arguments expected to be an Array of individual string args |
| 3 分钟后 | 7 | low | Jobs::UserEmail | {“type”=\>“digest”,“user\_id”=\>2,“current\_site\_id”=\>“default”} | Jobs::HandledExceptionWrapper: Wrapped ArgumentError: :arguments expected to be an Array of individual string args |
| 9 分钟后 | 9 | low | Jobs::UserEmail | {“type”=\>“digest”,“user\_id”=\>2,“current\_site\_id”=\>“default”} | Jobs::HandledExceptionWrapper: Wrapped ArgumentError: :arguments expected to be an Array of individual string args |
| 12 分钟后 | 12 | low | Jobs::UserEmail | {“type”=\>“digest”,“user\_id”=\>2,“current\_site\_id”=\>“default”} | Jobs::HandledExceptionWrapper: Wrapped ArgumentError: :arguments expected to be an Array of individual string args |
| 15 分钟后 | 13 | low | Jobs::UserEmail | {“type”=\>“digest”,“user\_id”=\>2,“current\_site\_id”=\>“default”} | Jobs::HandledExceptionWrapper: Wrapped ArgumentError: :arguments expected to be an Array of individual string args |
| … | … | … | … | … | … |

该站点运行的是 2026.1.0-latest ([0caa6e34fe](https://github.com/discourse/discourse/commits/0caa6e34fe4514ac534a02b54afd755fa0e9e538))

这是预期的吗？

---

<div class="post-metadata">

**Author:** ![pmusaraj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pmusaraj/32/119489_2.png) [@pmusaraj](https://meta.discourse.org/u/pmusaraj)\
**Post date:** [2026年一月28日 19:26 UTC](https://meta.discourse.org/t/there-are-email-jobs-that-failed-on-an-smtp-less-install/394573/2 "2026-01-28T19:26:56Z")

</div>

感谢您的发帖！

该电子邮件无法正常工作是预期的，但您看到的错误很不寻常。它们可能是由于您的设置中存在其他问题。

当我尝试在我测试的自托管实例上发送邀请时，我看到了这个错误：

```plaintext
Jobs::HandledExceptionWrapper: Wrapped Socket::ResolutionError: getaddrinfo: No address associated with hostname

```

以及仪表板中的此通知

 ![CleanShot 2026-01-28 at 14.25.38@2x](https://global.discourse-cdn.com/meta/original/4X/1/9/4/1946c60e3fc68f9f14ce382ad66bd75febe88df1.png)

> [@Canapin](#):
>
> Jobs::CallDiscourseHub

另外，这次失败与电子邮件 **无关** 。您能从 `/logs` 获得更多关于此的信息吗？

---

<div class="post-metadata">

**Author:** ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)\
**Post date:** [2026年一月28日 19:32 UTC](https://meta.discourse.org/t/there-are-email-jobs-that-failed-on-an-smtp-less-install/394573/3 "2026-01-28T19:32:39Z")

</div>

有两种类型的日志错误：

一个是 `Job exception: Unsupported command argument type: TrueClass`

```plaintext
redis-client-0.26.1/lib/redis_client/command_builder.rb:37:in `block in generate' 
redis-client-0.26.1/lib/redis_client/command_builder.rb:28:in `map!' 
redis-client-0.26.1/lib/redis_client/command_builder.rb:28:in `generate' 
redis-client-0.26.1/lib/redis_client.rb:351:in `call_v' 
redis-5.4.0/lib/redis/client.rb:90:in `call_v' 
rack-mini-profiler-4.0.1/lib/mini_profiler/profiling_methods.rb:90:in `block in profile_method' 
redis-5.4.0/lib/redis.rb:152:in `block in send_command' 
redis-5.4.0/lib/redis.rb:151:in `synchronize' 
redis-5.4.0/lib/redis.rb:151:in `send_command' 
redis-5.4.0/lib/redis/commands/hashes.rb:51:in `hmset' 
redis-5.4.0/lib/redis/commands/hashes.rb:66:in `mapped_hmset' 
/var/www/discourse/lib/discourse_redis.rb:144:in `public_send' 
/var/www/discourse/lib/discourse_redis.rb:144:in `block (3 levels) in <class:DiscourseRedis>' 
/var/www/discourse/lib/discourse_redis.rb:29:in `ignore_readonly' 
/var/www/discourse/lib/discourse_redis.rb:144:in `block (2 levels) in <class:DiscourseRedis>' 
/var/www/discourse/lib/discourse_updates.rb:116:in `block in missing_versions=' 
/var/www/discourse/lib/discourse_updates.rb:114:in `each' 
/var/www/discourse/lib/discourse_updates.rb:114:in `missing_versions=' 
/var/www/discourse/app/jobs/scheduled/call_discourse_hub.rb:19:in `execute' 
/var/www/discourse/app/jobs/base.rb:318:in `block (2 levels) in perform' 
rails_multisite-7.0.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
rails_multisite-7.0.0/lib/rails_multisite/connection_management.rb:17:in `with_connection'
/var/www/discourse/app/jobs/base.rb:305:in `block in perform' 
/var/www/discourse/app/jobs/base.rb:301:in `each' 
/var/www/discourse/app/jobs/base.rb:301:in `perform' 
/var/www/discourse/app/jobs/base.rb:381:in `perform' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:220:in `execute_job' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:185:in `block (4 levels) in process' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:180:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse' 
/var/www/discourse/lib/sidekiq/suppress_user_email_errors.rb:6:in `call' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse' 
/var/www/discourse/lib/sidekiq/discourse_event.rb:6:in `call' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse' 
/var/www/discourse/lib/sidekiq/pausable.rb:131:in `call' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse' 
sidekiq-7.3.9/lib/sidekiq/job/interrupt_handler.rb:9:in `call' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse' 
sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:26:in `track' 
sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:134:in `call' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:173:in `invoke' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:184:in `block (3 levels) in process' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:145:in `block (6 levels) in dispatch' 
sidekiq-7.3.9/lib/sidekiq/job_retry.rb:118:in `local' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:144:in `block (5 levels) in dispatch' 
sidekiq-7.3.9/lib/sidekiq/config.rb:39:in `block in <class:Config>' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:139:in `block (4 levels) in dispatch' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:281:in `stats' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:134:in `block (3 levels) in dispatch' 
sidekiq-7.3.9/lib/sidekiq/job_logger.rb:15:in `call' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:133:in `block (2 levels) in dispatch' 
sidekiq-7.3.9/lib/sidekiq/job_retry.rb:85:in `global' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:132:in `block in dispatch' 
sidekiq-7.3.9/lib/sidekiq/job_logger.rb:40:in `prepare' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:131:in `dispatch' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:183:in `block (2 levels) in process' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:182:in `handle_interrupt' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:182:in `block in process' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:181:in `handle_interrupt' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:181:in `process' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:86:in `process_one' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:76:in `run' 
sidekiq-7.3.9/lib/sidekiq/component.rb:10:in `watchdog' 
sidekiq-7.3.9/lib/sidekiq/component.rb:19:in `block in safe_thread' 

```

另外还有 1300 条 `Job exception: :arguments expected to be an Array of individual string args`：

```plaintext
mail-2.9.0/lib/mail/network/delivery_methods/sendmail.rb:53:in `initialize' 
mail-2.9.0/lib/mail/message.rb:278:in `new' 
mail-2.9.0/lib/mail/message.rb:278:in `delivery_method' 
actionmailer-8.0.4/lib/action_mailer/delivery_methods.rb:66:in `wrap_delivery_behavior' 
actionmailer-8.0.4/lib/action_mailer/delivery_methods.rb:80:in `wrap_delivery_behavior!' 
actionmailer-8.0.4/lib/action_mailer/base.rb:876:in `mail' 
/var/www/discourse/lib/email/build_email_helper.rb:8:in `build_email' 
/var/www/discourse/app/mailers/user_notifications.rb:369:in `digest' 
actionpack-8.0.4/lib/abstract_controller/base.rb:215:in `process_action' 
actionpack-8.0.4/lib/abstract_controller/callbacks.rb:261:in `block in process_action' 
activesupport-8.0.4/lib/active_support/callbacks.rb:100:in `run_callbacks' 
actionpack-8.0.4/lib/abstract_controller/callbacks.rb:260:in `process_action' 
actionpack-8.0.4/lib/abstract_controller/base.rb:152:in `process' 
actionmailer-8.0.4/lib/action_mailer/rescuable.rb:29:in `block in process' 
actionmailer-8.0.4/lib/action_mailer/rescuable.rb:21:in `handle_exceptions' 
actionmailer-8.0.4/lib/action_mailer/rescuable.rb:28:in `process' 
actionview-8.0.4/lib/action_view/rendering.rb:40:in `process' 
actionmailer-8.0.4/lib/action_mailer/base.rb:652:in `block in process' 
activesupport-8.0.4/lib/active_support/notifications.rb:212:in `instrument' 
actionmailer-8.0.4/lib/action_mailer/base.rb:651:in `process' 
actionmailer-8.0.4/lib/action_mailer/message_delivery.rb:136:in `block in processed_mailer' 
<internal:kernel>:90:in `tap'
actionmailer-8.0.4/lib/action_mailer/message_delivery.rb:135:in `processed_mailer' 
actionmailer-8.0.4/lib/action_mailer/message_delivery.rb:32:in ` __getobj__' 
/usr/local/lib/ruby/3.3.0/delegate.rb:84:in `method_missing'
/var/www/discourse/lib/email/sender.rb:51:in `send' 
/var/www/discourse/app/jobs/regular/user_email.rb:80:in `send_user_email' 
/var/www/discourse/app/jobs/regular/user_email.rb:40:in `execute' 
/var/www/discourse/app/jobs/base.rb:318:in `block (2 levels) in perform' 
rails_multisite-7.0.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
rails_multisite-7.0.0/lib/rails_multisite/connection_management.rb:17:in `with_connection'
/var/www/discourse/app/jobs/base.rb:305:in `block in perform' 
/var/www/discourse/app/jobs/base.rb:301:in `each' 
/var/www/discourse/app/jobs/base.rb:301:in `perform' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:220:in `execute_job' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:185:in `block (4 levels) in process' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:180:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse' 
/var/www/discourse/lib/sidekiq/suppress_user_email_errors.rb:6:in `call' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse' 
/var/www/discourse/lib/sidekiq/discourse_event.rb:6:in `call' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse' 
/var/www/discourse/lib/sidekiq/pausable.rb:131:in `call' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse' 
sidekiq-7.3.9/lib/sidekiq/job/interrupt_handler.rb:9:in `call' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse' 
sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:26:in `track' 
sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:134:in `call' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:173:in `invoke' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:184:in `block (3 levels) in process' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:145:in `block (6 levels) in dispatch' 
sidekiq-7.3.9/lib/sidekiq/job_retry.rb:118:in `local' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:144:in `block (5 levels) in dispatch' 
sidekiq-7.3.9/lib/sidekiq/config.rb:39:in `block in <class:Config>' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:139:in `block (4 levels) in dispatch' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:281:in `stats' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:134:in `block (3 levels) in dispatch' 
sidekiq-7.3.9/lib/sidekiq/job_logger.rb:15:in `call' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:133:in `block (2 levels) in dispatch' 
sidekiq-7.3.9/lib/sidekiq/job_retry.rb:85:in `global' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:132:in `block in dispatch' 
sidekiq-7.3.9/lib/sidekiq/job_logger.rb:40:in `prepare' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:131:in `dispatch' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:183:in `block (2 levels) in process' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:182:in `handle_interrupt' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:182:in `block in process' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:181:in `handle_interrupt' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:181:in `process' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:86:in `process_one' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:76:in `run' 
sidekiq-7.3.9/lib/sidekiq/component.rb:10:in `watchdog' 
sidekiq-7.3.9/lib/sidekiq/component.rb:19:in `block in safe_thread' 

```

此实例上安装了两个自定义插件，我可以将它们移除，看看您是否认为这些错误可能由此引起。

---

<div class="post-metadata">

**Author:** ![pmusaraj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pmusaraj/32/119489_2.png) [@pmusaraj](https://meta.discourse.org/u/pmusaraj)\
**Post date:** [2026年一月28日 19:48 UTC](https://meta.discourse.org/t/there-are-email-jobs-that-failed-on-an-smtp-less-install/394573/4 "2026-01-28T19:48:19Z")

</div>

嗯，这两个看起来都与插件无关。我将更新我的实例（它有三周的历史了）并看看是否会遇到同样的问题。

---

<div class="post-metadata">

**Author:** ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)\
**Post date:** [2026年二月19日 17:41 UTC](https://meta.discourse.org/t/there-are-email-jobs-that-failed-on-an-smtp-less-install/394573/5 "2026-02-19T17:41:00Z")

</div>

我猜那些的 `Disable emails` 必须是 `yes`。

---

<div class="post-metadata">

**Author:** ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)\
**Post date:** [2026年二月19日 18:49 UTC](https://meta.discourse.org/t/there-are-email-jobs-that-failed-on-an-smtp-less-install/394573/6 "2026-02-19T18:49:12Z")

</div>

好的，那可能是原因。我想在不安装 SMTP 的情况下，它应该会自动设置为“否”？

---

<div class="post-metadata">

**Author:** ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)\
**Post date:** [2026年二月19日 18:57 UTC](https://meta.discourse.org/t/there-are-email-jobs-that-failed-on-an-smtp-less-install/394573/7 "2026-02-19T18:57:08Z")

</div>

> [@Canapin](#):
>
> 如果不安装 SMTP，它应该会自动设置为“否”，我猜？

你的意思是“是”，因为设置是“禁用”。

它应该是的，但是当你这样做时，会出现一个超级烦人的全局横幅，大喊电子邮件已被禁用。
