2014-02-24 74 views
0

我不明白Gmail作为ActionMailer发生了什么。在heroku中部署时不会发送任何确认电子邮件。我可以在开发中轻松使用它。当我使用heroku进行部署时出现问题。Gmail作为ActionMailer部署在heroku问题

这些都是我在production.rb设置

config.action_mailer.smtp_settings = { 
    :address => "smtp.gmail.com", 
    :port => 587, 
    :domain => 'floating-castle-4592.herokuapp.com', 
    :user_name => '[email protected]', 
    :password => ENV['PASS'], 
    :authentication => :login, 
    :enable_starttls_auto => true 
} 

设置在development.rb

config.action_mailer.smtp_settings = { 
    :address => 'smtp.gmail.com', 
    :port => 587, 
    :domain => 'gmail.com', 
    :authentication  => :login, 
    :user_name   => '[email protected]', 
    :password   => ENV['PASS'], 
    :enable_starttls_auto => true 
} 

我试着换 '登录' 与 '普通',域名: 'gmail.com' 与'blahblah.herokuapp.com'。我尝试了所有的排列和组合。目前为止没有成功。我在smtp_settings中也尝试了“:openssl_verify_mode =>'none'”选项。这并没有带来我的成功!我真的不明白这里发生了什么。

如果您需要更多信息,我会编辑帖子。

我以前发布了无错日志。 参考这个职位,我深入挖掘日志记录级别,以找出错误stackoverflow.com/a/6766529/1881153

的新进展:

Heroku的日志显示错误的

ArgumentError (SMTP-AUTH requested but missing secret phrase) 

任何帮助将是很大的不胜感激!谢谢!

+0

好!删除密码为'xxx'的ENV ['PASS']为我工作。奇怪的! – nk06

回答

0

而不是在生产中使用Gmail时,我会用freemium Heroku的插件之一来处理SMTP推荐 - 无论是SendGridMandrill

我们有这个设置与SendGrid工作:

#config/environments/production.rb 
    config.action_mailer.smtp_settings = { 
    :address  => 'smtp.sendgrid.net', 
    :port   => '587', 
    :authentication => :plain, 
    :user_name  => ENV['SENDGRID_USERNAME'], 
    :password  => ENV['SENDGRID_PASSWORD'], 
    :domain   => 'heroku.com', 
    :enable_starttls_auto => true 
    } 
+0

谢谢,丰富。肯定会考虑这个选项。我想知道为什么这不起作用。 – nk06

+3

回答会员的问题,然后发表你的意见的最佳做法。 – SoEzPz

+0

如果您对答案不满意,请自行编写。 –