cam*_*oid 7 gmail ruby-on-rails
有了我的rails网站,当我尝试通过GMail发送邮件时,它运行得很好.但是当我尝试通过MandrillApp发送它时,它会产生以下错误(RController.create是调用deliver命令的地方):
Net::SMTPServerBusy in RController#create
454 4.7.1 <recipient@gmail.com>: Relay access denied
Run Code Online (Sandbox Code Playgroud)
这是我的config/environments/development.rb文件:
# ActionMailer Config
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.default :charset => "utf-8"
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
# config.action_mailer.smtp_settings = {
# :address => "smtp.gmail.com",
# :port => 587,
# :domain => 'gmail.com',
# :user_name => 'sender@gmail.com',
# :password => 'password',
# :authentication => 'plain',
# :enable_starttls_auto => true }
config.action_mailer.smtp_settings = {
:address => "smtp.mandrillapp.com",
:port => 587,
:user_name => ENV["EMAIL"],
:password => ENV["PASSWORD"]
}
Run Code Online (Sandbox Code Playgroud)
如上所述,代码不起作用 - 我没有收到电子邮件,也没有弹出错误.如果我切换到从GMail发送它,我几乎立即收到一封电子邮件.我以前从未与Mandrill合作过,所以任何帮助都会受到赞赏.
我最终与Mandrill的服务代表交谈,结果发现我使用的是实际的字符串而不是环境变量,因此我只需要从配置文件中删除"ENV".
为了安全起见,我最后回去制作环境变量,但我只是想把它扔出去,以防其他人有同样的问题并找到这个问题.