mandrill从localhost发送电子邮件

时间:2013-04-22 23:45:45

标签: ruby-on-rails-3 email heroku mandrill

我正在使用Mandrill为网站上的用户建立一个反馈表(他们填写表格并发给我一封电子邮件)。

我想测试开发中的电子邮件功能。我使用unicorn作为服务器,我的本地地址是0.0.0:8080

但是我收到500服务器错误,Net :: SMTPServerBusy:Relay Access Denied

我一步一步地遵循Heroku指示。

这是m application.rb配置:

config.action_mailer.smtp_settings = {
      :address => 'smtp.mandrillapp.com',
      :port => '587',
      :domain => 'heroku.com',
      :user_name => ENV['MANDRILL_USERNAME'],
      :password => ENV['MANDRILL_APIKEY']
    }

    ActionMailer::Base.delivery_method = :smtp

我按照mandrill / heroku网页上的说明进行设置。

我的.env文件设置了MANDRILL_USERNAME和我的MANDRILL_APIKEY

这是我的ActionMailer文件:

class FeedbackMailer < ActionMailer::Base
  default :from => ""
  default :to => "xxx@stanford.edu"
  default :subject => "feedback about xxx"

  def send_feedback(message)
    #debugger
    @message = message
    mail(:from => message[:sender_email])

  end
end

任何帮助都将不胜感激。

我可以确认电子邮件是否已投入生产。

1 个答案:

答案 0 :(得分:1)

如果您的所有设置都在生产中而非本地设置,则有几种可能性:

  1. 如何将变量从.env加载到ENV?环境变量可能未按预期在本地加载。如果您在本地硬编码凭据,它是否有效?

  2. 您可能遇到端口问题或被阻止的出站SMTP流量问题。考虑尝试端口2525,因为它可能不太可能被本地ISP阻止。启用S​​SL的端口465也可以工作,即使您的ISP阻止其他SMTP流量