AntonAL
AntonAL

Reputation: 17410

Net::SMTPAuthenticationError 502 5.5.2 in Rails ActionMailer

i'm trying to send confirmation email to the user.

But i get following error:

Net::SMTPAuthenticationError (502 5.5.2 Error: command not recognized

Configuration in production.rb is following:

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

I have created a mailbox in user profile at my hosting provider, named "signup@my_domain.com"

For created mailbox, they issued to me login and password:

login = verbose_login

password = verbose_password

I did't completely understood the exact format of :user_name.

Should i use

:user_name => "signup@my_domain.com"

or:

:user_name => "signup"

or:

:user_name => "verbose_login"

Or this field is specific to the mail server, and i must ask support of hosting provider ?

And what the difference between :authentication => :plain and :login ?

Thanks.

Upvotes: 2

Views: 7810

Answers (5)

Prabhakar
Prabhakar

Reputation: 6754

You've to use ActionMaliler::Base instead of config

   ActionMailer::Base.smtp_settings   #try this

  config.action_mailer.smtp_settings   #instead of this

Change your smtp code to below. It should work now.

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

Upvotes: 0

Demi Magus
Demi Magus

Reputation: 3437

I had the same problem, but it is just a google configuration issue.

For some reason Google was blocking access from unknown location (app in production), so to solve this you can go to http://www.google.com/accounts/DisplayUnlockCaptcha and click continue (this will grant access for 10 minutes for registering new apps).

On the other hand, you could login to your gmail account, then go to https://www.google.com/settings/security/lesssecureapps and enable the access to less secure applications, which was the solution for me!

Upvotes: 1

RohitPorwal
RohitPorwal

Reputation: 1065

Please try to login with browser once. There might be some issue with login (it will ask captcha etc).

Once you successfully logged-in, then try with Rails Mailer. It should work now.

This issue generally happens with test account as we do not login via browser usually. Then mail providers ask for confirmation like captcha, dob or answer of security question etc.

Upvotes: 0

Konstantin Ras
Konstantin Ras

Reputation: 95

I have got the same error recently, and the reason was incorrect format of recipients

recipient = IO.readlines(emails_filename).first
mail(:to => recipient, :subject => subject)

Don't forget to add strip to get clean email addresses.

Upvotes: 1

praethorian
praethorian

Reputation: 812

This works well for me:

config.action_mailer.smtp_settings = {
    :address              => 'smtp.gmail.com',
    :port                 => 587,
    :domain               => 'gmail.com',
    :user_name            => '[email protected]',
    :password             => 'secret_password',
    :authentication       => 'login',
    :enable_starttls_auto => true
  }

more info here

Petr

Upvotes: 6

Related Questions