我正在使用 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
如有任何帮助,我们将不胜感激。
我可以确认电子邮件已在生产环境中发送。
请您参考如下方法:
如果您的所有设置都在生产环境中运行但在本地运行,则有两种可能性:
如何将变量从 .env 加载到 ENV?环境变量可能没有按预期在本地加载。如果您在本地对凭据进行硬编码,是否有效?
您可能遇到了端口或出站 SMTP 流量被阻止的问题。考虑尝试端口 2525,因为它不太可能被本地 ISP 阻止。即使您的 ISP 阻止了其他 SMTP 流量,启用 SSL 的端口 465 也可能工作