ActionMailer获取已发送消息的messageid

时间:2009-08-21 10:19:30

标签: ruby-on-rails email actionmailer

我正在编写一个rails应用程序,当某些操作发生时发送电子邮件,然后用户可以回复这些电子邮件,系统需要将回复电子邮件与发送给用户的原始电子邮件相匹配。

这样做的最佳方法似乎是在发送邮件时保存邮件ID标头字段,这是否可以在ActionMailer中实现?然后,我可以从回复中检索引用标头并匹配消息。

如果无法做到这一点,还有其他解决办法吗?

5 个答案:

答案 0 :(得分:10)

使用Rails 3,这是可能的:

  

message = Mailer.welcome(@user).deliver
  message.message_id#=> 4ccc56d19 ...

答案 1 :(得分:3)

另一种方法是在电子邮件的“回复”字段中添加跟踪代码 这样的事情: 回复:通知+ $ {notifcation_id} @ yourdomain.com

例如,如果通知ID为123,则用户将回复通知+123@yourdomain.com,当系统收到电子邮件时,123可用于识别原始邮件。

答案 2 :(得分:1)

我不确定动作管理器是否可以访问消息ID,但是可以添加自己的自定义标头,然后在用户回复时引用它们。

您可以在邮件程序模型中执行以下操作: -

@headers["VetId"] = order.vet_id

答案 3 :(得分:0)

答案 4 :(得分:0)

您可以在邮件程序类

中设置Message-ID标头
class mailer < ActionMailer::Base
  default "Message-ID" => lambda {"#{SecureRandom.uuid}@domain.com"}   
  ....
end