0

可能已经被问过百万次了,但我的情况不同,我已经尝试了所有可以想象的配置选项,并在生产模式下也进行了尝试。电子邮件已呈现,但它没有出现在任何地方。我什至买了 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
4

1 回答 1

1

你应该写:

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

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

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

您的声明只是创建 Mail::Message 对象,deliver 实际发送电子邮件。

于 2012-09-26T15:24:48.050 回答