【发布时间】:2022-08-07 12:44:48
【问题描述】:
我的 Rails 应用程序位于 VPS 上,并通过外部 SMTP 服务器mail.mydomain 发送外发邮件。这已经工作了好几年,但最近我重建了服务器以更新其基础设施,其中包括将 VPS 移动到新的 IP 地址。我更新了mydomain 的地址记录以指向新的 IP。 MX 记录指向我的 ISP 提供的mail.mydomain。此外,我更新到 Rails 7.0.3 并安装了新的 \'Let\'s Encrypt\' SSL 证书。
从那时起,每当我尝试从 Rails 应用程序发送邮件时,日志都会显示消息“重定向到 https://mydomain”,并且没有发送任何内容。我已经验证我可以使用sendmail 和mailx 直接发送未经身份验证的邮件,并且我可以通过msmtp 到mail.mydomain 发送经过身份验证的邮件。
问题一定出在我的应用程序设置上。目前production.rb 有以下邮件设置。
# config.action_mailer.raise_delivery_errors = false
# specify what domain to use for mailer URLs
config.action_mailer.delivery_method = :sendmail
config.action_mailer.default_url_options = { host: \'mydomain\', protocol: \'https\' }
config.action_mailer.smtp_settings = {
address: \'mail.mydomain\',
port: 465,
domain: \'mydomain\',
user_name: <user>,
password: <password>,
authentication: \'plain\',
ssl: true,
tls: true,
open_timeout: 5,
read_timeout: 5
}
外发邮件通过使用good_job 作为后台处理器的活动作业进行排队,但在good_job 执行#deliver_now 之后发生Redirected to https://mydomain。
我不明白为什么它是重定向,或者接下来要尝试什么。
标签: ruby-on-rails email