我正在编写一个 Rails 应用程序,它在发生某些操作时发送电子邮件,然后用户可以回复这些电子邮件,系统需要将回复电子邮件与发送给用户的原始电子邮件相匹配。
似乎最好的方法是在发送消息时保存消息 id 标头字段,这在 ActionMailer 中是否可行?然后我可以从回复中检索引用标题并匹配消息。
如果这是不可能的,是否有任何替代解决方案?
我正在编写一个 Rails 应用程序,它在发生某些操作时发送电子邮件,然后用户可以回复这些电子邮件,系统需要将回复电子邮件与发送给用户的原始电子邮件相匹配。
似乎最好的方法是在发送消息时保存消息 id 标头字段,这在 ActionMailer 中是否可行?然后我可以从回复中检索引用标题并匹配消息。
如果这是不可能的,是否有任何替代解决方案?
使用 Rails 3,这是可能的:
message = Mailer.welcome(@user).deliver
message.message_id #=> 4ccc56d19...
另一种选择是在电子邮件的“回复”字段中添加跟踪代码,如下所示:回复:notification+${notifcation_id}@yourdomain.com
例如,如果通知id是123,用户会回复notification+123@yourdomain.com,当系统收到邮件时,可以用123来识别原始邮件。
我不确定是否可以在 actionmailer 中访问消息 ID,但是可以添加您自己的自定义标头,然后在用户回复时引用这些标头。
您在邮件模型中执行此操作,如下所示:-
@headers["VetId"] = order.vet_id
您可以在邮件程序类中设置 Message-ID 标头
class mailer < ActionMailer::Base
default "Message-ID" => lambda {"#{SecureRandom.uuid}@domain.com"}
....
end