ruby-on-rails - rails : Sending Emails with Dynamic Delivery Options is not working

标签 ruby-on-rails ruby email

根据文档,使用动态传递选项发送电子邮件的工作原理是将新的传递选项哈希作为参数传递给 mail()

class UserMailer < ApplicationMailer
  def welcome_email(user, company)
    @user = user
    @url  = user_url(@user)
    delivery_options = { user_name: company.smtp_user,
                         password: company.smtp_password,
                         address: company.smtp_host }
    mail(to: @user.email,
         subject: "Please see the Terms and Conditions attached",
         delivery_method_options: delivery_options)
  end
end

但是,邮件仍然使用环境配置文件中定义的默认传递选项发送,例如生产.rb或开发.rb:

config.action_mailer.smtp_settings = {
      :address => 'smtp.gmail.com',
      :port => 587,
      :domain => 'ourdomain.com',
      :user_name => '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f692939097839a82b699838492999b979f98d895999b" rel="noreferrer noopener nofollow">[email protected]</a>',
      :password => ENV['DEFAULT_PASSWORD'],
      :authentication => 'login',
      :enable_starttls_auto => true
  }

rails 4。

有谁知道问题出在哪里吗?感谢您的帮助。

最佳答案

生成邮件后覆盖传送方式设置:

class UserMailer < ApplicationMailer
  def welcome_email(user, company)
    @user = user
    @url  = user_url(@user)
    delivery_options = { user_name: company.smtp_user,
                         password: company.smtp_password,
                         address: company.smtp_host }
    mail = mail(to: @user.email,
         subject: "Please see the Terms and Conditions attached")

    mail.delivery_method.settings.merge!(delivery_options)
  end
end

关于ruby-on-rails - rails : Sending Emails with Dynamic Delivery Options is not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43072133/

相关文章:

php - 如果内存过度使用,哪个进程会被内核杀死? child 还是 parent ?

ruby - 如何使用 to_i 获取 Ruby 字符串中的第二个整数?

.net - 如何序列化邮件消息?

Javascript - 从输入中删除焦点

mysql - 如何在 Rails 中预先填充的数据库上运行测试?

ruby-on-rails - 安装带有 native 扩展 Gem::Ext::BuildError: ERROR: Failed to build 的 puma 5.6.2

ruby-on-rails - Rails 生产 Assets 预编译,但在浏览器中显示为空白

ruby - 如何在 Ruby 中将字符串拆分为两个具有给定字符的部分?

php - 检查数据库 php 中是否已存在值

ruby-on-rails - 我应该使用模板来呈现 JSON 还是在 RoR 中使用 Controller 返回 JSON?