ruby-on-rails Rails通过动态域的后缀邮件发送

zpjtge22  于 2023-04-22  发布在  Ruby
关注(0)|答案(1)|浏览(338)

应用程序有多个租户,电子邮件应该反映该租户的域。实际上,mailer定义:

from_string = 'do-not-reply@' + shop.shop_value.email_host
    subject_string = 'your order at ' + shop.name
    mail(
      from: from_string,
      to:  consumer.email,
      subject: subject_string 
    )

但是,这似乎是通过 probably myhostname的/etc/postfix/main.cf配置处理的

myhostname = maindomain.tld
mydestination = $myhostname, maindomain.tld, localhost.online, , localhost

导致以下记录的错误

Delivered mail 6442d7c523bf1_7fab24fe0933c6@maindomain.tld.mail
[...]
] OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 peeraddr=[::1]:25 state=error: certificate verify failed (hostname mismatch)):

现在在相关环境文件中看到了设置建议

openssl_verify_mode: 'none'

但这似乎总是指config.action_mailer.smtp_settings = {}块...并且定义address, port, domain, disable_start_tls没有意义,因为环境设置为:

config.action_mailer.delivery_method = :sendmail

postfix作为SMTP服务器运行,但此服务器被配置为只发送。然而,域设置为SPF和DKIM,以便其他服务器正确处理。
出现了三个问题:
1 -myhostname可以是configured as an array。但是rails怎么知道如何切换到postfix呢?这是必要的吗?
2 -Rails是否可以接受以下命令(并且更快地实现):

config.action_mailer.smtp_settings = {
    openssl_verify_mode: 'none'
}

即smtp_settings仍然渗透到sendmail处理。
3 -有没有一种方法可以通过sendmail_settings来实现这个目标?

z4bn682m

z4bn682m1#

config.action_mailer.smtp_settings = {
    openssl_verify_mode: 'none'
}

是可以接受的rails,并允许电子邮件传递到postfix。

相关问题