3

尝试从 Ruby on Rails 发送电子邮件,但得到以下信息:

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

我的环境/development.rb 文件有:

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

  config.action_mailer.delivery_method = :smtp

  config.action_mailer.default_url_options = { :host => 'localhost:5000' } 
  # 5000 rather than 3000 as I am using foreman.
4

2 回答 2

8

我使用我的 Gmail 做了同样的事情,以下是我的配置,试试看是否可行

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

请注意

:openssl_verify_mode  => 'none'

部分跳过 SSL 错误。

但是很抱歉,我不知道错误是什么,可能您尝试将 Gmail SMTP 服务器与另一个域名一起使用。

于 2012-07-30T16:01:17.867 回答
0

如果其他人遇到同样的问题,我只想补充一点,我在我的 Rails API 中尝试使用 gmail 实现邮件系统时遇到了完全相同的问题,并且添加:openssl_verify_mode => 'none'并没有解决我的问题。

相反,安装figaro gem,然后application.yml像这样添加我的环境变量:

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

为我做了伎俩。

(不要忘记更改您的 SMTP 设置:)

user_name:             ENV['gmail_username'],
password:              ENV['gmail_password'],
于 2018-10-25T13:33:16.700 回答