这是 ApplicationMailer
中的方法class CancelTrip < ApplicationMailer
default from: 'xyz@gmail.com'
def cancel_trip
@recvr= "ssdd@gmail.com"
mail(to: @recvr, subject: 'Your trip has been cancelled as per your request' )
end
end
环境变量如下:
SMTP_ADDRESS: 'smtp.gmail.com'
SMTP_PORT: 587
SMTP_DOMAIN: 'localhost:3000'
SMTP_USERNAME: 'xyz@gmail.com'
SMTP_PASSWORD: 'gggh2354'
我在控制器中调用邮件程序方法如下:
def cancel
xxxxx
CancelTrip.cancel_trip.deliver_now
end
developement.rb 有以下
config.action_mailer.raise_delivery_errors = false
config.action_mailer.default_url_options = {host: 'localhost', port:3000}
config.action_mailer.perform_deliveries = true
日志显示正在发送的电子邮件。但我在收件箱中看不到任何电子邮件。 我的rails版本是4.2.6。
答案 0 :(得分:1)
在config/application.rb
文件中添加以下smtp设置:
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.raise_delivery_errors = true
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:user_name => "xxxxxxxxx@gmail.com",
:password => "xxxxxxxx",
:authentication => "plain",
:enable_starttls_auto => true
}
答案 1 :(得分:0)
检查垃圾邮件......我回来时遇到了这个问题
答案 2 :(得分:0)
一种可能是您的防火墙不允许发送电子邮件。尝试连接不同的网络。