我有一个已部署到AWS Elastic Beanstalk的rails应用程序。该应用程序使用设计来处理用户身份验证,其设置为能够邀请用户。 我的问题是,当我尝试邀请用户时,我收到以下错误:
Net::SMTPFatalError (554 secureserver.net ESMTP No Relay Access Allowed From <my_eb_assigned_ip>
(我在GoDaddy上托管域名。)
在开发中,邮件程序功能正常;我的smtp设置设置为(所有环境都通用):
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:address => "smtpout.secureserver.net",
:port => 80,
:domain => "www.my_domain.com",
:authentication => :plain,
:user_name => "do-not-reply@my_domain.com",
:password => my_pass,
}
在我的production.rb配置文件中:
config.action_mailer.default_url_options = { :host => 'aws_sb.elasticbeanstalk.com' }
我是否需要在Elasticbeanstalk中启用另一个允许中继访问的设置?或者我错过了我的rails配置中的生产特定设置?
答案 0 :(得分:0)
我发现这是我设置的端口值....当我将端口切换到25时,它在生产中工作。但是,为了开发,25号港口没有工作;当端口为80时,它只能在dev中工作。
所以我最终将整个smtp邮件程序设置移动到特定于环境的设置(来自config / environment.rb文件),并将生产端口设置为25,将开发端口设置为80,这似乎使两者都成为环境工作。
编辑:经过另一次推送,我看到了同样的问题,我尝试过的端口都没有解决问题。所以我最终将所有邮件功能都转换为通过Amazon SES发送,到目前为止看起来效果很好。