Ruby on rails 用于用户确认的电子邮件未在生产中发送。Rails、Heroku、Desive、Gmail

Ruby on rails 用于用户确认的电子邮件未在生产中发送。Rails、Heroku、Desive、Gmail,ruby-on-rails,email,heroku,devise,confirmation,Ruby On Rails,Email,Heroku,Devise,Confirmation,我在谷歌和stackoverflow上到处寻找答案,但都不管用。 我正在尝试在注册后设置smtp电子邮件以供用户确认。它在开发中运行良好。即使启用了MailCatcher,它也会以某种方式绕过它,从我指定的gmail发送到正确的电子邮件 下面是development.rb中的内容: config.action_mailer.default_url_options = { :host => 'localhost:3000'} config.action_mailer.delivery_met

我在谷歌和stackoverflow上到处寻找答案,但都不管用。 我正在尝试在注册后设置smtp电子邮件以供用户确认。它在开发中运行良好。即使启用了MailCatcher,它也会以某种方式绕过它,从我指定的gmail发送到正确的电子邮件

下面是development.rb中的内容:

config.action_mailer.default_url_options = { :host => 'localhost:3000'}
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {:address => "localhost", :port => 1025}
下面是production.rb中的内容:

 config.action_mailer.default_url_options = {:host => 'myapp.herokuapp.com', :protocol => 'http'} #I've also tried it without ":protocol => 'http'"
 config.action_mailer.raise_delivery_errors = true
 config.action_mailer.delivery_method = :smtp
 config.action_mailer.perform_deliveries = true
 config.action_mailer.smtp_settings = {
     :address => "smtp.gmail.com",
     :port => 587,
     :authentication => :plain,   # I've also tried :login
     :enable_starttls_auto => true,  # Also tried tls => true
     :user_name => 'myemail@gmail.com',
     :password => 'mypassword'
   } #I've also tried having the attribute :domain => 'myapp.herokuapp.com',
在config/initializers/designe.rb中

config.mailer_sender = 'please-change-me-at-config-initializers-devise@example.com'  #It still sends from myemail@gmail.com even with this line uncommented.
我不知道如何在代码块中粘贴我的全部7页(word文档)heroku日志,所以我将它们粘贴到了google文档中

google doc of heroku日志(我相信我在第1-2页强调了它开始出错的部分):

我不确定它在哪里找到了正确的电子邮件发送从发展。我在这方面还是个新手

编辑:我刚刚发现,在添加确认之前注册的用户也无法登录,因此heroku可能存在用户问题。但在开发过程中,一切都很好



非常感谢您的帮助,谢谢

您可能会错过此
config.action\u mailer.perform\u deliveries=true
您可能会错过此
config.action\u mailer.perform\u deliveries=true
请检查您的gmail是否要求验证码发送邮件。要调试错误,请在production.rb上设置
config.action\u mailer.raise\u delivery\u errors=true
。请检查类似问题请检查您的gmail是否要求验证码发送邮件。要调试错误,请在production.rb上生成
config.action\u mailer.raise\u delivery\u errors=true
。请检查类似的问题

我以前在production.rb文件中有过类似的问题,但当我被告知不需要时将其删除。我在日志中找不到任何错误消息,我认为它不知何故被切断了。此外,我在Gmail上遇到了一个问题,我不得不接受外部访问权限(当你登录Gmail时,在顶部有一条消息)。否则,您将遇到SMTPAuthenticationError。我从来没有在Gmail的顶端收到过信息/警告。我还检查了上次登录的详细信息,它显示它是在开发过程中通过SMTP登录的,但在我尝试在生产环境中登录时它没有登录。如果heroku日志没有显示错误消息,我如何找到它?这可能有助于您了解Heroku日志级别。我以前在production.rb文件中有过这一点,但当我被告知不需要时将其删除了。我在您的日志中找不到任何错误消息,我想它不知何故被切断了。此外,我还遇到了Gmail问题,我不得不接受外部访问权限(当您登录Gmail时,顶部会显示一条消息)。否则,您将遇到SMTPAuthenticationError。我从未在Gmail顶部收到消息/警告。我还检查了上次登录的详细信息,显示它是在开发过程中通过SMTP登录的,但在我尝试在生产环境中登录时它没有登录。如果heroku日志没有显示错误消息,我如何找到该错误消息?这可能会帮助您了解Heroku日志级别。我检查了页面,确保我的代码反映了他们的解决方案。我还检查了验证码。谷歌说:“启用了帐户访问,请尝试从新设备或应用程序再次登录到你的谷歌帐户。”它仍然不起作用。此外,由于它在开发中起作用(实际上是从gmail发送的)是的,有时这会在生产中产生问题。因为谷歌要求验证码。请按照前面的链接,并检查发送电子邮件时有什么错误。Gmail说已启用对帐户的访问。我如何检查有什么错误?在Heroku上,它只说“很抱歉,出了点问题。"heroku日志上传到speedyshare上。我在原始帖子中链接到了它。我不知道如何粘贴长代码行而不必在每行前手动键入4个空格。如果你担心这是恶意下载,我可以将其放入谷歌文档中。我检查了页面,确保我的代码反映了他们的解决方案。我还检查了captc谷歌说:“启用了帐户访问功能,请尝试从新设备或应用程序再次登录到你的谷歌帐户。”它仍然不起作用。另外,因为它在开发过程中起作用(实际上是通过gmail发送的)是的,有时这会在生产中产生问题。因为谷歌要求验证码。请按照前面的链接,并检查发送电子邮件时有什么错误。Gmail说已启用对帐户的访问。我如何检查有什么错误?在Heroku上,它只说“很抱歉,出现了一些问题。”heroku日志上载到speedyshare上。我在原始帖子中链接到了它。我不知道如何粘贴长代码行而不必在每行前手动键入4个空格。如果你担心这是恶意下载,我可以将其放入谷歌文档中。