Rails 4 Net :: SMTPAuthenticationError:535#5.7.0身份验证失败

Dee*_*kor 8 email ruby-on-rails actionmailer heroku ruby-on-rails-4

我正在为我的大学的学生组织建立一个电子邮件列表.该组织有大约6000名成员,为避免成本我已获得使用学校电子邮件服务器的许可,他们为我创建了一个帐户.

我已经使用我的邮件客户端测试了帐户,一切似乎工作正常,但当我尝试通过我的Rails 4应用程序发送时,我得到错误:

Net::SMTPAuthenticationError: 535 #5.7.0 Authentication failed
Run Code Online (Sandbox Code Playgroud)

我有这样的配置:

application.rb中

config.action_mailer.smtp_settings = 
{
    :address   => "smtp.school.edu",
    :port      => 25, 
    :enable_starttls_auto => true, 
    :user_name => "account@school.edu",
    :password  => "mypassword", 
    :authentication => 'login',
    :domain => 'http://myapp.herokuapp.com/' 
}
Run Code Online (Sandbox Code Playgroud)

同样,凭据都是正确的,我已经通过我的邮件客户端测试了它,并且还与服务器管理员坐下来确认我的配置中的所有内容都与端口和凭据一致.

我被告知smtp服务器"向公众开放"并且没有任何阻止连接,我们已经检查了他们的日志,他们甚至没有看到尝试从我的应用程序连接.

任何人都有任何线索这里出了什么问题?有什么设置我不知道可能会关闭吗?

use*_*690 5

尝试添加openssl_verify_mode => 'none'到您的操作邮件设置:

config.action_mailer.smtp_settings = 
{
    :address   => "smtp.school.edu",
    :port      => 25, 
    :enable_starttls_auto => true, 
    :user_name => "account@school.edu",
    :password  => "mypassword", 
    :authentication => 'login',
    :domain => 'http://myapp.herokuapp.com/',
    :openssl_verify_mode => 'none'
}
Run Code Online (Sandbox Code Playgroud)

当然,我们正在使用Rails 3,但这对我有用.我们的问题是我们的证书是自签名的,Rails使用的库认为这是一个问题.这是一篇讨论该选项的文章.

  • 您是否尝试过使用 telnet 等方式连接到 smtp 服务器?这就是我找出我的配置有问题的方法...... (2认同)

Non*_*ona 2

“:domain”应该指向“school.edu”而不是“herokuapp.com”吗?我知道当您通过 action_mailer 设置为 gmail 设置 smtp 时,您会看到如下内容:

config.action_mailer.smtp_settings = {
    :address              => 'smtp.gmail.com',
    :port                 => 587,
    :domain               => 'gmail.com',
    :user_name            => 'example@gmail.com',
    :password             => 'example_password',
    :authentication       => 'login',
    :enable_starttls_auto => true
  }
Run Code Online (Sandbox Code Playgroud)