可能已经被问了几百万次,但我的情况有所不同,我已经尝试了所有可以想象的配置选项并尝试了生产模式。电子邮件已呈现,但不会出现在任何地方。我甚至买了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
答案 0 :(得分:1)
你应该写:
ContactMailer.contact_email(@contact, @house).deliver
您可以在此处阅读ActionMailer文档:
http://api.rubyonrails.org/classes/ActionMailer/Base.html
您的语句只是创建Mail :: Message对象,实际发送邮件。