4

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

似乎最好的方法是在发送消息时保存消息 id 标头字段,这在 ActionMailer 中是否可行?然后我可以从回复中检索引用标题并匹配消息。

如果这是不可能的,是否有任何替代解决方案?

4

5 回答 5

11

使用 Rails 3,这是可能的:

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

于 2010-10-30T17:38:25.737 回答
3

另一种选择是在电子邮件的“回复”字段中添加跟踪代码,如下所示:回复:notification+${notifcation_id}@yourdomain.com

例如,如果通知id是123,用户会回复notification+123@yourdomain.com,当系统收到邮件时,可以用123来识别原始邮件。

于 2009-08-21T20:31:47.503 回答
1

我不确定是否可以在 actionmailer 中访问消息 ID,但是可以添加您自己的自定义标头,然后在用户回复时引用这些标头。

您在邮件模型中执行此操作,如下所示:-

@headers["VetId"] = order.vet_id
于 2009-08-21T11:13:24.943 回答
0

看看http://tmail.rubyforge.org/

于 2010-01-13T02:32:18.177 回答
0

您可以在邮件程序类中设置 Message-ID 标头

class mailer < ActionMailer::Base
  default "Message-ID" => lambda {"#{SecureRandom.uuid}@domain.com"}   
  ....
end
于 2014-02-12T14:49:15.840 回答