3

我正在使用 Mandrill 为网站上的用户构建反馈表(他们填写表单并给我发送电子邮件)。

我想在开发中测试电子邮件功能。我使用独角兽作为服务器,我的本地地址是 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

任何帮助,将不胜感激。

我可以确认电子邮件已在生产中发送。

4

1 回答 1

1

如果您的所有设置都在生产环境中工作,但不是在本地工作,则有两种可能性:

  1. 您如何将变量从 .env 加载到 ENV?环境变量可能没有按预期在本地加载。如果您在本地对凭据进行硬编码,它会起作用吗?

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

于 2013-04-26T12:59:16.020 回答