我正在尝试使用ActionMailer
自动向用户发送电子邮件。但是,在保存用户之后,应该触发电子邮件。我没有看到任何消息已发送到我的收件箱。保存发生没有错误,但邮件从未到达。有什么问题?
邮件程序
class OrderNotifier < ActionMailer::Base
default from: "from@example.com"
def received(order)
@order = order
mail to: order, subject: 'Pragmatic Store Order Confirmation'
end
end
development.rb
Depot::Application.configure do
# Settings specified here will take precedence over those in config/application.rb.
# In the development environment your application's code is reloaded on
# every request. This slows down response time but is perfect for development
# since you don't have to restart the web server when you make code changes.
config.cache_classes = false
# Do not eager load code on boot.
config.eager_load = false
# Show full error reports and disable caching.
config.consider_all_requests_local = true
config.action_controller.perform_caching = false
# Don't care if the mailer can't send.
config.action_mailer.raise_delivery_errors = false
# Print deprecation notices to the Rails logger.
config.active_support.deprecation = :log
# Raise an error on page load if there are pending migrations
config.active_record.migration_error = :page_load
# Debug mode disables concatenation and preprocessing of assets.
# This option may cause significant delays in view rendering with a large
# number of complex assets.
config.assets.debug = true
config.action_mailer.delivery_method = :sendmail
config.action_mailer.delivery_method = :test
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address:
"smtp.gmail.com",
port:
587,
domain:
"domain.of.sender.net",
authentication: "plain",
user_name:
"dave",
password:
"secret",
enable_starttls_auto: true
}
end
controller.rb
def create
@order = "a2010@mail.ru"
...
respond_to do |format|
if @user.save
OrderNotifier.received(@order).deliver
format.html { redirect_to @user}
format.json { render action: 'show', status: :created, location: @user }
else
format.html { render action: 'new' }
format.json { render json: @user.errors, status: :unprocessable_entity }
...
end
查看/ order_notifier
Welcome to example.com
Thank you for your recent order from The Pragmatic Store.
答案 0 :(得分:1)
你应该只有这些设置之一:
config.action_mailer.delivery_method = :sendmail
config.action_mailer.delivery_method = :test
config.action_mailer.delivery_method = :smtp
除此之外总是打开log / development.log文件,看看会发生什么。 rails很可能会告诉你它将要做什么。
如果您想了解有关调试的更多信息,请阅读此http://nofail.de/2013/10/debugging-rails-applications-in-development/