3

trying to send email form Ruby on Rails but getting this:

SocketError in UsersController#create
getaddrinfo: nodename nor servname provided, or not known

My environments/development.rb file has:

  config.action_mailer.smtp_settings = { 
    address: "smtp.gmail.com",
    port: 587,
    domain: "my_company.org",
    authentication: "plain",
    enable_starttls_auto: true,
    user_name: "my_username@my_company.org",
    password: "my_pass"
  }

and

  config.action_mailer.delivery_method = :smtp

and

  config.action_mailer.default_url_options = { :host => 'localhost:5000' } 
  # 5000 rather than 3000 as I am using foreman.
Michael Durrant
  • 93,410
  • 97
  • 333
  • 497

2 Answers2

8

I did the same using my Gmail, following are my configurations, try and see it if works

  config.action_mailer.default_url_options = { :host => 'localhost:3000' }
  ActionMailer::Base.smtp_settings = {
                    :address        => "smtp.gmail.com",
                    :port           => 587,
                    :authentication => :plain,
                    :user_name      => "<my gmail>@gmail.com",
                    :password       => "<my gmail password>",
                    :openssl_verify_mode  => 'none'
  } 

and please note the

:openssl_verify_mode  => 'none'

section to skip the SSL errors.

But sorry, I have no idea what the error is, probably you try to use the Gmail SMTP server with another domain name.

halfer
  • 19,824
  • 17
  • 99
  • 186
sameera207
  • 16,547
  • 19
  • 87
  • 152
  • @MichaelGlaz, check this out, this might help :) http://stackoverflow.com/questions/16040158/rails-mailer-netopentimeout-execution-expired-exception-on-production-serve – sameera207 Apr 14 '14 at 22:48
0

In case others face the same issue, I just wanted to add that I had the exact same problem trying to implement a mailing system with gmail in my Rails API, and adding :openssl_verify_mode => 'none' did not solve the problem for me.

Instead, installing the figaro gem and then adding my environment variable in application.yml like so:

gmail_username: "myemail@gmail.com"
gmail_password: "mypassword"

did the trick for me.

(and dont forget to change you SMTP settings: )

user_name:             ENV['gmail_username'],
password:              ENV['gmail_password'],
Uj Corb
  • 1,959
  • 4
  • 29
  • 56