Ruby on rails ActionMailer获取已发送邮件的messageid

Ruby on rails ActionMailer获取已发送邮件的messageid,ruby-on-rails,email,actionmailer,Ruby On Rails,Email,Actionmailer,我正在编写一个rails应用程序,当某些操作发生时发送电子邮件,用户可以回复这些电子邮件,系统需要将回复电子邮件与发送给用户的原始电子邮件相匹配 似乎最好的方法是在发送邮件时保存邮件id头字段,这在ActionMailer中是否可行?然后,我可以从回复中检索引用标头并匹配消息 如果不可能,是否有其他解决方案?我不确定是否可以在actionmailer中访问邮件id,但是可以添加您自己的自定义标题,然后在用户答复时引用这些标题 您可以在mailer模型中执行以下操作:- @headers["Vet

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

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


如果不可能,是否有其他解决方案?

我不确定是否可以在actionmailer中访问邮件id,但是可以添加您自己的自定义标题,然后在用户答复时引用这些标题

您可以在mailer模型中执行以下操作:-

@headers["VetId"] = order.vet_id

另一种选择是在电子邮件的“回复”字段中添加跟踪代码 大概是这样的: 回复:notification+${notification\u id}@yourdomain.com


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

查看

对于Rails 3,这是可能的:

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


您可以在mailer类中这样设置消息ID头

class mailer < ActionMailer::Base
  default "Message-ID" => lambda {"#{SecureRandom.uuid}@domain.com"}   
  ....
end
class-mailerlambda{{SecureRandom.uuid}@domain.com}
....
结束

对不起,Greg,我想说的是,您可以在ActionMailer子类中访问TMail::Mail对象的消息id。例如,您可以使用“mail=UserMailer.create_notification_mail”(如果UserMailer是ActionMailer的子类)创建一封新邮件,然后使用mail.message_id访问邮件id。但另一方面,我更喜欢使用上面描述的“ez”方式向您的回复地址添加令牌。希望这能多帮点忙。