gpt4 book ai didi

ruby-on-rails - 如何在自定义设计电子邮件中设置自定义电子邮件主题?

转载 作者:行者123 更新时间:2023-12-04 09:36:04 24 4
gpt4 key购买 nike

我在 Rails 3 应用程序中使用设计来创建帐户。我有不同类型的用户,所以我想根据用户类型发送自定义密码恢复电子邮件。

我能够发送自定义电子邮件,但我还没有找到在该电子邮件上设置自定义标题的方法。我对设置电子邮件的主题特别感兴趣。

我做了以下事情:

  • 创建了一个带有自定义方法的自定义设计邮件程序。此方法使用参数调用 devise_mail。在这种情况下,自定义邮件程序称为“reset_partner_instructions”。我可以调用这个邮件程序并成功地从我的用户模型发送一封电子邮件。
  • 创建了一个自定义电子邮件 View 模板,该模板已成功从 devise_mail 调用.

  • 我的自定义邮件如下所示:
    class AccountMailer < Devise::Mailer
    helper :application # gives access to all helpers defined within application_helper.
    def reset_partner_instructions(record, opts={})
    devise_mail(record, :reset_partner_instructions, opts)
    end
    end

    问题是电子邮件的主题始终是“重置合作伙伴说明”。我相信 Devise 是根据邮件模板的名称生成这个标题的。

    在本教程中 https://github.com/plataformatec/devise/wiki/How-To:-Use-custom-mailer ,他们调用以下代码:
    def confirmation_instructions(record, opts={})
    headers["Custom-header"] = "Bar"
    super
    end

    由于我直接调用“devise_mail”,我没有看到如何将标题传递到邮件程序中。我可以使用简单的设置或方法来设置电子邮件主题吗?

    最佳答案

    这是一个老问题,但仍然出现在搜索的顶部,我可以通过设置 opts[:subject] 来解决这个问题而不是设置标题:

    # https://github.com/plataformatec/devise/wiki/How-To:-Use-custom-mailer
    class DeviseMailer < Devise::Mailer
    helper :application
    include Devise::Controllers::UrlHelpers
    default template_path: 'devise/mailer'

    def confirmation_instructions(record, token, opts={})
    opts[:subject] = ...
    opts[:from] = ...
    opts[:reply_to] = ...
    super
    end
    end

    devise.rb :
      config.mailer = 'DeviseMailer'

    关于ruby-on-rails - 如何在自定义设计电子邮件中设置自定义电子邮件主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17002994/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com