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"
Ответы
Ответ 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>