ActionMailer без Rails - представления не собираются - PullRequest
2 голосов
/ 07 сентября 2011

Я настроил ActionMailer 3.x для использования вне Rails, но письма не имеют тела. Кто-нибудь может помочь?

# ./app.rb
require 'action_mailer'
ActionMailer::Base.delivery_method = :file
ActionMailer::Base.file_settings[:location] = './tmp/mails'
ActionMailer::Base.view_paths = './views'

class Mailer < ActionMailer::Base
  def instructions(email_address)
    mail(:to => email_address, :subject => 'hello')
  end
end

Mailer.instructions('test@email.com').deliver

Тогда у меня есть два файла для моих представлений, один для простого текста

# ./views/mailer/instructions.text.erb
These are some instructions

И еще один для html (используя HAML - я знаю, что есть некоторые потенциальные проблемы с этим, любой совет здесь тоже будет оценен!)

# ./views/mailer/instructions.html.haml
%html
  %body
    %h1 These are some HTML instructions

Но если я проверю свой недавно созданный ./tmp/mails/test@email.com, у меня будет только следующее, и нет основного текста:

Date: Wed, 07 Sep 2011 18:38:09 +0530
From: my@address.com
To: test@email.com
Message-ID: <4e676ab8e2bc5_274560aab8567d0@mycomputer.mail>
Subject: hello
Mime-Version: 1.0
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

Есть идеи, что здесь происходит? Заранее спасибо

1 Ответ

1 голос
/ 06 февраля 2012

После перехода с Rails 2.x -> 3.x у меня возникла та же проблема (хотя и с другой настройкой).У моих html-писем не было тела.Я переместил свой класс почтовика из папки моделей в папку почтовиков и изменил имена файлов моего вида:

file_name.text.html.erb

=>

file_name.html.erb

Надеюсь, это поможет.

...