Rails Mailer Net :: SMTPServerBusy

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合作过,所以任何帮助都会受到赞赏.

cam*_*oid 5

我最终与Mandrill的服务代表交谈,结果发现我使用的是实际的字符串而不是环境变量,因此我只需要从配置文件中删除"ENV".

为了安全起见,我最后回去制作环境变量,但我只是想把它扔出去,以防其他人有同样的问题并找到这个问题.