【发布时间】:2014-07-15 06:50:15
【问题描述】:
这似乎是一个很奇怪的问题,在尝试从多个角度解决后,我有点卡住了。
设置非常简单,它只是一个联系表单,您可以在其中输入您的姓名、电子邮件地址、电子邮件主题和正文。此电子邮件将发送给主机(我们称之为 dfnd@gmail.com),它应该来自用户在表单中输入的电子邮件地址。
setup_mail.rb
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:user_name => ENV['ACTION_MAILER_NAME'],
:password => ENV["ACTION_MAILER_PASSWORD"],
:authentication => "plain",
:enable_starttls_auto => true
}
ActionMailer::Base.default_url_options[:host] = ENV['ACTION_MAILER_HOST']
notifications_mailer.rb
class NotificationsMailer < ActionMailer::Base
def new_message(message)
@message = message
mail(to: "dfnd@gmail.com", subject: "Contact Form: #{message.subject}")
end
end
pages_controller.rb
def create
@message = Message.new(params[:message])
if @message.valid?
NotificationsMailer.new_message(@message).deliver
redirect_to(root_path)
else
flash[:error] = "Please fill in the required fields appropriately."
redirect_to contact_path
end
end
在我的应用程序中“卡住”的“发件人”电子邮件地址是 testlove@gmail.com(这是 ACTION_MAILER_NAME 环境变量)。无论我在哪里更改我的 rails 应用程序中的“发件人”或默认的“发件人”电子邮件地址,它始终是 testlove@gmail.com。
即使我像这样在 development.rb 中设置默认值:
config.action_mailer.default_options = {from: 'no-reply@example.com'}
“发件人”电子邮件地址仍为 testlove@gmail.com
更奇怪的是,如果我查看我的服务器日志,它会显示正确的电子邮件地址,但是当我打开实际的电子邮件时,它再次总是 testlove@gmail.com。
对此有何见解?我已经多次重新启动我的服务器,并且对为什么会发生这种情况感到非常困惑。
【问题讨论】:
-
据我所知,如果您使用 Gmail,您将无法做到这一点。您应该使用自己的邮件设置。看看sendgrid.com
-
看起来很有希望,谢谢。
-
@Santosh,非常感谢。 SendGrid 的工作就像一个魅力!
-
没问题。我已将其添加为答案。 :)
标签: ruby-on-rails actionmailer