Подтвердить что ты не робот

Gmail smtp с рельсами 3

Я пытаюсь получить подтверждение по электронной почте, используя учетную запись gmail. Я огляделся, и ничего не видно. Нет ошибок или чего-то еще, он просто не посылает

У меня это как инициатор:

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.raise_delivery_errors = true


ActionMailer::Base.smtp_settings = {
  :address              => "smtp.gmail.com",
  :port                 => 587,
  :domain               => "gmail.com",
  :user_name            => "<address>@gmail.com",
  :password             => "<password>",
  :authentication       => "plain",
  :enable_starttls_auto => true
}

ActionMailer::Base.default_url_options[:host] = "localhost:3000"
4b9b3361

Ответ 1

Вам больше не нужно tlsmail gem, по крайней мере, с Rails 3.2

Этого будет достаточно

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  :address              => "smtp.gmail.com",
  :port                 => 587,
  :domain               => 'baci.lindsaar.net',
  :user_name            => '<username>',
  :password             => '<password>',
  :authentication       => 'plain',
  :enable_starttls_auto => true  }

Из всемогущего руководства Конфигурация ActionMailer для gmail

Ответ 2

добавить tlsmail в gemfile

gem 'tlsmail'

run:

bundle install

добавьте эти параметры в файл config/envirnoments/development.rb

YourApplicationName::Application.configure do
    require 'tlsmail'
      Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
      ActionMailer::Base.delivery_method = :smtp
      ActionMailer::Base.perform_deliveries = true
      ActionMailer::Base.raise_delivery_errors = true
      ActionMailer::Base.smtp_settings = {
          :address => "smtp.gmail.com",
          :port => "587",
          :domain => "gmail.com",
          :enable_starttls_auto => true,
          :authentication => :login,
          :user_name => "<addreee>@gmail.com",
          :password => "<password>"
      }

    config.action_mailer.raise_delivery_errors = true

Ответ 3

Вы должны проверить, действительно ли [email protected] отправлено письмо. У нас были проблемы с этим в прошлом, когда отправляли электронные письма с проверкой через SMTP-сервер Gmail, так как отправка навалом заканчивается, не отправляя вообще.

Я предлагаю вам войти в систему [email protected] и убедиться, что нет проблем и что электронные письма отправлены.

Если нет, вы можете попробовать воспользоваться услугой Отправить сетку для отправки исходящих писем.

Кроме того, вы можете посмотреть на свой сервер. Или, если вы находитесь в разработке, посмотрите log/development.log. Я уверен, что вы можете видеть в своих журналах, что он действительно пытается отправить почту.

Проблема заключается в том, что Google не доверяет вашему локальному IP-адресу, и ваши письма не будут доставлены (даже не в каталог спама). Невозможно обойти это, но использовать сервер с белым списком.

Вы можете попробовать это, развернув свое приложение на производственном сервере, таком как Heroku, и протестируйте его там.

Ответ 4

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  :address              => "smtp.gmail.com",
  :port                 => 587,
  :domain               => 'baci.lindsaar.net',
  :user_name            => '<username>',
  :password             => '<password>',
  :authentication       => 'plain',
  :enable_starttls_auto => true  }

<username> означает заполнение вашего реального имени пользователя? Таким образом, <password>