我正在从我的 Rails 应用程序发送电子邮件。它在开发环境中运行良好,但在登台上失败。我收到以下错误:
Net::SMTPAuthenticationError (534-5.7.14 <https://accounts.google.com/ContinueSignIn?plt=AKgnsbtdF0yjrQccTO2D_6)
请注意,我没有用于登台的域名。
这是我在 staging.rb 中的设置
config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { :host => "my.ip.addr.here:80" }
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => 'my.ip.addr.here:80'
:user_name => "my_email_name@gmail.com",
:password => "my_email_password",
:authentication => 'login'
}
请帮忙。
编辑。
添加后
:tls => true
我得到的选项OpenSSL::SSL::SSLError (Unrecognized SSL message, plaintext connection?)
然后我将端口更改为 25,现在我得到了这个(延迟了 30 秒):
Timeout::Error (execution expired)
最佳答案
我遇到了同样的问题:电子邮件是从开发中发送的,而不是从生产中发送的(我收到的是 Net::SMTPAuthenticationError
)。
这让我得出结论,问题不在于我的应用程序的配置,而在于 Google。
原因 :Google 阻止了来自未知位置的访问(生产中的应用程序)
解决方案 : 转至 http://www.google.com/accounts/DisplayUnlockCaptcha并单击继续(这将授予 10 分钟的访问权限以注册新应用程序)。
在此之后,我在生产中的应用程序开始发送电子邮件;)
关于ruby-on-rails - 从 Rails 应用程序发送电子邮件时出现 Net::SMTPAuthenticationError(在登台环境中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18124878/