【问题标题】:Rails mail parameters from user来自用户的 Rails 邮件参数
【发布时间】:2015-12-04 10:19:16
【问题描述】:

而不是在特定于环境的初始化程序中设置邮件 smtp 参数;我希望最终用户从管理页面中指定它。

如何实现?

【问题讨论】:

  • 这个改动的动机是什么,简单解释一下功能
  • 我们的应用服务于许多不同类型的公司、用户等。每个用户都应该设置他/她自己的邮件参数,以便应用程序从用户的公司电子邮件地址发送通知。

标签: ruby-on-rails ruby-on-rails-4 actionmailer


【解决方案1】:

您可以动态设置任何类型的 ActionMailler 配置/设置,只需对其进行更改(imo 是一种不好的方法。如果您提供 saas,那么您也可以发送电子邮件)

def my_controller_action
  ActionMailer::Base.server = "mail.gmail.com"
  ActionMailer::Base.username = "huan-son"
  #...
end

来自 Railsdoc

smtp_settings - 允许详细配置 :smtp 传递 方法:

:address - 允许您使用远程邮件服务器。只需将其从 它的默认“localhost”设置。

:port - 如果您的邮件服务器没有在端口上运行 25,你可以改变它。

:domain - 如果需要指定 HELO 域,可以在这里进行。

:user_name - 如果您的邮件服务器需要身份验证,请设置 此设置中的用户名。

:password - 如果您的邮件服务器需要身份验证,请设置 此设置中的密码。

:authentication - 如果您的邮件服务器需要身份验证,您 这里需要指定认证类型。这是一个符号和一个 of :plain (将发送密码 Base64 编码), :login (将发送 密码 Base64 编码)或 :cram_md5(结合了 交换信息的挑战/响应机制和 加密消息摘要 5 算法来散列重要 信息)

:enable_starttls_auto - 检测您的 SMTP 中是否启用了 STARTTLS 服务器并开始使用它。默认为真。

:openssl_verify_mode - 使用 TLS 时,您可以设置 OpenSSL 检查的方式 证书。如果您需要验证一个 自签名和/或通配符证书。您可以使用一个名称 OpenSSL 验证常量 ('none', 'peer', 'client_once', 'fail_if_no_peer_cert') 或直接常量 (OpenSSL::SSL::VERIFY_NONE,OpenSSL::SSL::VERIFY_PEER,……)。

sendmail_settings - 允许您覆盖 :sendmail 的选项 交货方式。

:location - sendmail 可执行文件的位置。默认为 /usr/sbin/sendmail.

:arguments - 命令行参数。默认为 -i -t 和 -f sender@address 在发送消息前自动添加。

【讨论】:

    猜你喜欢
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-10
    • 2013-11-30
    • 2022-10-05
    • 1970-01-01
    相关资源
    最近更新 更多