Rails 4 Net::SMTPAuthenticationError: 535 #5.7.0 Authentication failed

南笙酒味 提交于 2019-12-29 01:34:13

问题


I'm building a email list for a student organization at my University. The organization has around 6000 members and to avoid costs I've received permission to use the schools emails servers and they have created an account for me.

I have tested the the account using my mail client and everything seems to be working fine, but when I try to send through my Rails 4 app I get the error:

Net::SMTPAuthenticationError: 535 #5.7.0 Authentication failed

I have it configured like so:

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/' 
}

Again the credentials are all correct, I have tested it through my mail client and have also sat down with the server admin to confirm everything looks right in my configuration as far as port and credentials.

I've been told the smtp server is "wide open to the public" and there is nothing blocking a connection and we have checked their logs and they haven't even seen an attempt to connect from my app.

Anyone have any clue what is going wrong here? Is there some setting I dont know about that could be off?


回答1:


Try adding openssl_verify_mode => 'none' to your action mailer settings:

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'
}

Granted, we are using Rails 3, but this worked for me. The issue for us was that our certificates are self-signed and the library Rails uses considers that to be a problem. Here is an article that talks about the option.




回答2:


Should ":domain" point to "school.edu" instead of "herokuapp.com"? I know when you set smtp for gmail via action_mailer settings, you have something like:

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
  }



回答3:


Should the domain contain "http://" ?




回答4:


Create a file setup_mail.rb in the folder config/initializers/ and put the code:-

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.smtp_settings = {
  :address   => "smtp.school.edu",
  :domain => 'myapp.herokuapp.com',
  :port      => 25,
  :user_name => "account@school.edu",
  :password  => "mypassword", 
  :authentication => :plain,
  :enable_starttls_auto => true
}
ActionMailer::Base.default_url_options[:host] = "myapp.herokuapp.com"



回答5:


My issue was resolved by following steps.

config.action_mailer.default :charset => "utf-8"
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
    address: 'smtp.gmail.com',
    port: 587,
    domain: 'mysite.com',
    user_name: myemail@gmail.com,
    password: mypassword,
    authentication: 'plain',
    enable_starttls_auto: true
}

As google will try to block your sign-in if you have turned off access for less secure apps in your accounts settings. Therefore, follow this link and "Turn on" access for less secure apps.



来源:https://stackoverflow.com/questions/25735206/rails-4-netsmtpauthenticationerror-535-5-7-0-authentication-failed

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!