2016-01-04 2 views
0

Мне сложно найти документацию о том, как вручную скомпилировать электронное письмо с помощью модуля рельсов actionmailer. Я ищу что-то вроде content = Rails::ActionMailer.compile(raw_content), которое выполнит всю компиляцию, которая обычно будет выполняться на #deliver (premailer для встроенных стилей, вспомогательный загруженный контент & еще несколько пользовательских функций).Вручную компилировать электронную почту с помощью actionmailer & premailer

Я видел некоторую документацию для использования методов тестирования actionmailer, чтобы выбросить электронное сообщение в поставляемый массив, не доставляя их. Это единственное, что доступно?

ответ

1

Начиная с Rails 4.x, вам необходимо позвонить deliver, чтобы отправить электронное письмо.

UserMailer.whatever("args").deliver 

Таким образом, вы можете использовать (примечание не поставить), чтобы получить сообщение, не отправляя его:

message = UserMailer.whatever("args") 

Если вы звоните #body на сообщения Вы получаете содержимое тела.

message.body 

message является ActionMailer::MessageDelivery объект, который просто является оболочкой вокруг Mail::Message.

+0

Я получаю 'undefined метод 'send_digest' для ContentMailer: Class'. Есть ли какая-либо дополнительная конфигурация, которую я должен сделать для доступа к сообщению без '# доставки'? –

+0

Ugh! Я перепутал имена во время моего рефакторинга. Похоже, это работает! –

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