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

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

但是我收到 500 服务器错误,Net::SMTPServerBusy:中继访问被拒绝

我一步一步地按照 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. 如何将变量从 .env 加载到 ENV?环境变量可能没有按预期在本地加载。如果您在本地对凭据进行硬编码,是否有效?

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


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!