我三重检查了电子邮件地址和密码是否正确。我还根据this answer设置了我的电子邮件。但是没有发送电子邮件。如果出现问题,我的控制台中至少不会出现错误吗?
我使用的是Rails 4.0.10。
配置/环境/ development.rb
Website::Application.configure do
config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { host:'localhost', port: '3000' }
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default :charset => "utf-8"
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 587,
domain: 'localhost:3000',
user_name: 'xxxxxx@xxxxxxx',
password: 'password',
authentication: 'plain',
enable_starttls_auto: true
}
end
应用/邮寄者/ user_mailer文件
class UserMailer < ActionMailer::Base
default from: "xxxxxx@xxxxx"
def notify(user)
@user = user
mail(to: @user.email,subject: "subject")
end
end
控制台
$ UserMailer.notify(User.first)
Rendered user_mailer/notify.html.erb (0.4ms)
=> #<Mail::Message:2623523, Multipart: false, Headers: <From: xxxxxx@xxxxx>, <To: xxxxxxx@xxxxx>, <Subject: subject>, <Mime-Version: 1.0>, <Content-Type: text/html>>
答案 0 :(得分:1)
在deliver
或deliver_now
deliver_later
,controller
或Model
UserMailer.notify(User.first).deliver
答案 1 :(得分:0)
您必须就.deliver_now
方法的结果致电.deliver_later
或notify
。有关详细信息,请查看如何使用ActionMailer。