【问题标题】:mandrill send e-mail from localhostmandrill 从本地主机发送电子邮件
【发布时间】:2013-04-16 00:45:30
【问题描述】:

我正在使用 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

任何帮助将不胜感激。

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

【问题讨论】:

  • 您是否尝试过在 application.rb 中使用 config.action_mailer.delivery_method = :smtp 而不是 ActionMailer::Base.delivery_method = :smtp?

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


【解决方案1】:

如果您的所有设置都在生产环境中有效,但在本地无效,则有以下几种可能性:

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

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

【讨论】:

  • 您的第一个答案是正确的 - 事情在生产中有效,但在开发中无效。
猜你喜欢
  • 2016-07-22
  • 2014-10-25
  • 2013-10-01
  • 2010-12-19
  • 2011-10-31
  • 2014-01-10
相关资源
最近更新 更多