Rails 3 Action Malier呈现模板并且不发送电子邮件

时间:2012-09-26 14:47:28

标签: ruby-on-rails-3 actionmailer

可能已经被问了几百万次,但我的情况有所不同,我已经尝试了所有可以想象的配置选项并尝试了生产模式。电子邮件已呈现,但不会出现在任何地方。我甚至买了15美元的MockSMPT应用程序来查看电子邮件,但似乎没有任何结果。

以下是MockSMTP的配置:

config.action_mailer.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
  :address => "localhost",
  :port => 1025,
  :domain => "whatever.com"
}
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true

我已经尝试了delivery_method:test:file,我正在撕开我的头发,没有任何帮助:

Rendered contact_mailer/contact_email.html.erb (2.1ms)

就是这样。

发送代码很简单:

def contact_email(contact, house=nil)
  @house=house if house
  @contact=contact
  mail(to: contact.email, subject: "#{contact.name} new inquiry")
end

Rails 3.2.8

contact_controller.rb

def create
  @contact = Contact.new(params[:contact])
  if @contact.valid?
    @house=House.find_by_id(params[:house_id])
    ContactMailer::contact_email @contact, @house
  end
end

1 个答案:

答案 0 :(得分:1)

你应该写:

ContactMailer.contact_email(@contact, @house).deliver

您可以在此处阅读ActionMailer文档:

http://api.rubyonrails.org/classes/ActionMailer/Base.html

您的语句只是创建Mail :: Message对象,实际发送邮件。