自定义电子邮件标题仅在控制台重新加载后才存在
问题描述:
我一直试图在我们的宝石的帮助下,在所有项目中设置全局电子邮件标头。目前,该宝石用于向我们的所有电子邮件中添加BCC电子邮件等等。我将标题的代码添加到添加BCC电子邮件地址的方法中。自定义电子邮件标题仅在控制台重新加载后才存在
的BCC地址在整个所有的项目中正确添加,所以我知道这行代码肯定是在启动时运行。
这是相关宝石的代码。
ActionMailer::Base.default "FOO" => 'BAR'
bcc = message.bcc.to_a
bcc << BCC_ADDRESS
message.bcc bcc
想法是,这个头文件存在于我们所有的电子邮件中。
现在到了有趣的部分,我已经采取措施来创造,我有这个问题的步骤。
- 与新宝石版本 捆绑项目
- 启动了轨道控制台
- 发送任何随机电子邮件
- 感到失望的是,头不显示在电子邮件。但是,BCC地址已正确显示。
- 运行
reload!
- 发送电子邮件再次
- 被困惑,为什么头突然出现
我在轨尝试这种3.2.22.5(红宝石2.2.4)和轨道4.2.9 。 (ruby 2.4.1) 运行规范时不包括头文件,但BCC地址存在。
没有人有任何想法可能会导致这些奇怪的症状是什么?
答
好吧,所以这个问题与正在兑现对电子邮件默认做。 因此,重新发送电子邮件时,默认值不会被重新检查。
若要解决此我改变了宝石句柄,我想通过执行以下操作来发送每封邮件之间的行为方式。
- 截距呼吁deliver_message
mail.header[:'FOO'] = 'BAR'