2010-05-28 1 views
1

Я работаю над приложением, которое должно отправлять сообщения электронной почты, а затем направлять ответ обратно на исходный элемент ,Попытка установить идентификатор сообщения, in-reply-to и т. Д. В ActionMailer

Все письма будут отправляться на один адрес (это не может измениться к сожалению), и мне нужно определить, куда они идут. Моя первоначальная мысль заключалась в установке идентификатора сообщения для элемента, чтобы он возвращался в виде заголовка «Ссылки».

любые идеи о том, как это сделать с помощью ActionMailer?

ответ

2

FINALLY нашел его.

Сначала проблема: ActionMailer вызывает функцию ready_to_send внутри TMail при отправке с использованием smtp, которая в свою очередь вызывает функцию add_message_id, которая переопределяет все, что вы там помещаете.

Решение: есть недокументированный (насколько я могу судить) метод в TMail под названием enforced_message_id=(val). используя этот INSTEAD message_id гарантирует, что add_message_id не будет перезаписывать ваши значения. Например, вы могли бы:

mail = MyMailer.create_mail_function(values) 
mail.enforced_message_id = '<my_not_proper_message_id>' 
MyMailer.deliver(mail) 

Вам нужно быть осторожным с этим, потому что message_id может быть сложным. Они должны быть уникальными и действительными. Я предполагаю, что причина в том, что у TMail было немного боли, чтобы переопределить значение по умолчанию.

Надеемся, что это спасает кого-то впустую днем ​​(говорящий от опыта здесь ;-)

0

Обратите внимание, что enforced_message_id предназначен только для TMail> = 1.2.7 (поставляется с Rails> = 2.3.6). Функция не существует для Tmail < = 1.2.3 (для Rails < = 2.3.5). Обойти Rails 2.3.6, чтобы изменить add_message_id net.rb на следующее:

def add_message_id(fqdn = nil) 
    self.message_id = ::TMail::new_message_id(fqdn) if self.message_id.nil? 
end 

Это «поставщик» копия TMail в ActionMailer в установке Rails. (Найдите корень установки Rails, используя «среду gem»).

+1

Я имел в виду «обходной путь для Rails <= 2.3.5». -4DV – 4DV

Смежные вопросы