我正在尝试向用户发送确认电子邮件。
但我得到以下错误:
Net :: SMTPAuthenticationError(502 5.5.2错误:命令无法识别
production.rb中的配置如下:
# Disable delivery errors, bad email addresses will be ignored
config.action_mailer.raise_delivery_errors = true
# set delivery method to :smtp, :sendmail or :test
config.action_mailer.delivery_method = :smtp
# these options are only needed if you choose smtp delivery
config.action_mailer.smtp_settings = {
:address => 'path_to_address_specified_by_my_hoster',
:port => 25,
:domain => 'my_domain.com',
:authentication => :plain,
:user_name => 'signup@my_domain.com',
:password => 'password'
}
我在我的托管服务提供商的用户个人资料中创建了一个邮箱,名为“signup@my_domain.com”
对于创建的邮箱,他们向我发出了登录名和密码:
login = verbose_login
password = verbose_password
我还没完全理解:user_name。
的确切格式我应该使用
:user_name => "signup@my_domain.com"
或:
:user_name => "signup"
或:
:user_name => "verbose_login"
或者此字段特定于邮件服务器,我必须要求托管服务提供商支持?
又有什么区别:authentication => :plain和:login?
感谢。
答案 0 :(得分:6)
这对我很有用:
config.action_mailer.smtp_settings = {
:address => 'smtp.gmail.com',
:port => 587,
:domain => 'gmail.com',
:user_name => 'my_nick@gmail.com',
:password => 'secret_password',
:authentication => 'login',
:enable_starttls_auto => true
}
更多信息here
彼得
答案 1 :(得分:1)
我最近遇到了同样的错误,原因是收件人格式不正确
recipient = IO.readlines(emails_filename).first
mail(:to => recipient, :subject => subject)
不要忘记添加strip
以获取干净的电子邮件地址。
答案 2 :(得分:1)
我遇到了同样的问题,但这只是一个谷歌配置问题。
出于某种原因,Google阻止了来自未知位置(生产中的应用)的访问权限,因此要解决此问题,您可以转到http://www.google.com/accounts/DisplayUnlockCaptcha并点击“继续”(这将为注册新应用授予10分钟访问权限)。< / p>
另一方面,您可以登录您的Gmail帐户,然后转到https://www.google.com/settings/security/lesssecureapps并启用对安全性较低的应用程序的访问,这对我来说是解决方案!
答案 3 :(得分:0)
请尝试使用浏览器登录一次。 登录可能存在一些问题(它会询问验证码等)。
成功登录后,请尝试使用Rails Mailer。 它现在应该工作。
此问题通常发生在测试帐户中,因为我们通常不会通过浏览器登录。 然后邮件提供商要求确认,如验证码,dob或安全问题的答案等。
答案 4 :(得分:0)
您必须使用ActionMaliler :: Base而不是config
ActionMailer::Base.smtp_settings #try this
config.action_mailer.smtp_settings #instead of this
将您的smtp代码更改为以下内容。它现在应该工作。
ActionMailer::Base.smtp_settings = {
:address => 'path_to_address_specified_by_my_hoster',
:port => 25,
:domain => 'my_domain.com',
:authentication => :plain,
:user_name => 'signup@my_domain.com',
:password => 'password'
}