有任何简单的方法可以使用Rails ActionMailer将电子邮件分组到一个线程中吗?

时间:2019-07-05 01:41:58

标签: ruby-on-rails ruby email gmail actionmailer

我希望在某些情况下(例如来自GitHub的电子邮件)将从我的Rails应用发送给用户的电子邮件分组为多个线程。 (在Gmail和Outlook中。)

enter image description here

我知道这需要在In-Reply-ToReferences电子邮件标题中具有特定消息ID的电子邮件。

我是否必须管理数据库中的所有消息ID?还是在Ruby on Rails中有更聪明的方法做到这一点?

我想知道在Rails中对电子邮件进行线程化的最佳实践。

1 个答案:

答案 0 :(得分:1)

无需跟踪数据库中的Message-ID。

您唯一需要的方法是为相同的输入生成相同的消息ID(例如md5 hash)。该方法的输入必须保持不变,并标识所有应分组在一起的消息。在您的示例中,来自GitHub的有关特定请求请求的分组电子邮件,他们本可以使用id作为输入。

我将开始玩这样的游戏:

require 'digets'

def message_id(identifer)
  Digest::MD5.hexdigest(identifer)
end

message_id("pull-123")
#=> "23172d2caceae88a1152e967af71fc6e"
message_id("issue-456")
#=> "26c89ed68512269d003d32811bbd4527"