Rails 5 ActionMailer发送邮件,但未在收件箱中收到

时间:2016-08-03 23:57:02

标签: email actionmailer ruby-on-rails-5

我花了大量时间和研究(阅读Stack Overflow中的相关帖子)试图让一个简单的Rails 5应用程序发送电子邮件。我研究并遵循了此处的信息:Ruby on Rails Guides Action Mailer Basics

我想知道指南中是否有重要的遗漏。有人会根据指南创建一个简单的应用程序并告诉我它是否有效吗?

以下是我在GitHub https://github.com/allenroulston/testmailer中按照Rails指南(上面显示的链接)创建的代码。当我测试时,我使用的是实际的用户名和密码。看起来它应该工作,按日志,但没有工作。它对你有用吗?

2 个答案:

答案 0 :(得分:0)

您的app / config / environment / development.rb

config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.smtp_settings = {
  address:              'smtp.gmail.com',
  port:                 587,
  domain:               'example.com',
  user_name:            'youremail@gmail.com',
  password:             'YourGmailPassword',
  authentication:       'plain',
  enable_starttls_auto: true
}
config.file_watcher = ActiveSupport::EventedFileUpdateChecker
config.exceptions_app = self.routes
您的user_mailer.rb

中的

class UserMailer < ApplicationMailer
default from: 'myemail@example.com'

def welcome_email(user)
    @user = user
    @url  = 'http://www.example.com'
    mail(to: @user.email, subject: 'Welcome to Example.com')
end
end

这完美无缺

答案 1 :(得分:0)

我相信在我的应用程序发送电子邮件时遇到的挑战的原因是由于最初的错误配置,如果正确纠正,没有导致应用程序发送电子邮件,因为我没有停止并重新启动rails服务器。大多数情况下,没有必要停止并重新启动rails服务器以查看代码中的更改是否生效。显然,在将配置更改连接到ActionMailer时需要它。