ActionMailer получает messageid для отправленных сообщений - PullRequest
4 голосов
/ 21 августа 2009

Я пишу приложение rails, которое отправляет электронные письма, когда происходят определенные действия, пользователи могут отвечать на эти электронные письма, и система должна сопоставить ответное электронное письмо с оригинальным электронным письмом, отправленным пользователю.

Кажется, что лучший способ сделать это - сохранить поле заголовка идентификатора сообщения при отправке сообщений, возможно ли это в ActionMailer? Затем я могу получить заголовок ссылки из ответов и сопоставить сообщения.

Если это невозможно, есть ли альтернативные решения?

Ответы [ 5 ]

10 голосов
/ 30 октября 2010

С Rails 3 это возможно:

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

3 голосов
/ 22 августа 2009

другая альтернатива - добавить код отслеживания в поле «Ответить» что-то вроде этого: ответить на: уведомление +$ndomnotifcation_id Event@yourdomain.com

например, если идентификатор уведомления равен 123, пользователь ответит на уведомление +123@yourdomain.com, когда система получит электронное письмо, 123 можно использовать для идентификации исходного сообщения.

1 голос
/ 21 августа 2009

Я не уверен, что в actionmailer возможно получить доступ к идентификатору сообщения, однако можно добавить свои собственные пользовательские заголовки и затем ссылаться на них, когда пользователь отвечает.

Вы делаете это в модели почтовой программы следующим образом: -

@headers["VetId"] = order.vet_id
0 голосов
/ 12 февраля 2014

Вы можете установить заголовок Message-ID таким же образом в вашем почтовом классе

class mailer < ActionMailer::Base
  default "Message-ID" => lambda {"#{SecureRandom.uuid}@domain.com"}   
  ....
end
0 голосов
/ 13 января 2010

Посмотрите на http://tmail.rubyforge.org/!

...