2016-12-29 5 views
0

Я использую устройство для аутентификации. Он предоставляет ссылку на забытый пароль. Когда я отправляю электронное письмо, письмо не отправляется. Ниже приведены настройки, которые я использовал. Можете ли вы сказать мне, почему gmail не отправляет электронное письмо? Я также включил «разрешить менее безопасное приложение для отправки электронной почты», и я также включил IMAP в настройках gmail.Почему разработчик не отправляет почту через gmail smtp?

application.rb имеет следующие настройки.

ActionMailer::Base.smtp_settings = { 


    :address => 'smtp.gmail.com', 
    :domain => 'mail.google.com', 
    :port => 587, 
    :user_name => '[email protected]', 
    :password => 'validpassword', 
    :authentication => 'login', 
    :enable_starttls_auto => true 


} 

development.rb имеет

config.action_mailer.default_url_options = { host: '127.0.0.1'} 


    config.action_mailer.delivery_method = :smtp 

После отправки электронной почты я получаю следующий текст в консоли.

Devise::Mailer#reset_password_instructions: processed outbound mail in 215.2ms 
Sent mail to [email protected] (1097.6ms) 
Date: Thu, 29 Dec 2016 09:50:41 +0000 
From: [email protected] 
Reply-To: [email protected] 
To: [email protected] 
Message-ID: <[email protected]l> 
Subject: Reset password instructions 
Mime-Version: 1.0 
Content-Type: text/html; 
charset=UTF-8 
Content-Transfer-Encoding: 7bit 

<p>Hello [email protected]!</p> 

<p>Someone has requested a link to change your password. You can do this through the link below.</p> 

<p><a href="http://127.0.0.1/users/password/edit?reset_password_token=WQxYad91mPghMxaurYA5">Change my password</a></p> 

<p>If you didn't request this, please ignore this email.</p> 
<p>Your password won't change until you access the link above and create a new one.</p> 

Redirected to https://rubyonrails-kofhearts.c9users.io/users/sign_in 
Completed 302 Found in 1965ms (ActiveRecord: 14.7ms) 

UPDATE:

Я только после этого учебника.

https://www.youtube.com/watch?v=ZEk0Jp2dThc

Отправить сообщение не работает с параметрами, указанными в этом видео.

+0

Может быть дубликат http://stackoverflow.com/questions/25735206/rails-4-netsmtpauthenticationerror-535-5-7-0-authentication-failed/25884665#25884665 –

+0

Я знаю, что это не ответ на ваш вопрос. вопрос, но я отказался от использования smtp через gmail. Теперь я использую 'sendinblue', у них есть служба smpt, которая бесплатна для 300 сообщений в день. Также красивый рубиновый жемчуг, поэтому он очень прост в использовании. – Iceman

ответ

0

Это должно работать. Возможно, вы также можете включить config.action_mailer.raise_delivery_errors = true в config/environments/development.rb. Легче отлаживать.

Возможно, вы забудете указать config.action_mailer.perform_deliveries = true в config/environments/development.rb?

+0

спасибо, но даже после добавления настроек perform_deliveries и флага raise_delivery_errors адрес электронной почты не отправляется. Я обновил свой пост выше с сообщением консоли, которое печатается после того, как я нажму «Отправить мне инструкции по сбросу пароля», который должен отправить электронное письмо в предоставленное электронное письмо. – kofhearts

0

Вы пробовали это?

config.action_mailer.default_url_options = { :host => 'localhost:3000' } 
ActionMailer::Base.smtp_settings = { 
    :address    => "smtp.gmail.com", 
    :port     => 587, 
    :domain    => "gmail.com", 
    :user_name   => "[email protected]", 
    :password    => "secret", 
    :authentication  => "plain" 
    # :enable_starttls_auto => true # I don't have this, but it should work anyway 
} 

это он послал, возможно, вы не получите его из-за спам-фильтра, первое, что нужно проверить:

class UserMailer < ActionMailer::Base 
    default :from => "[email protected]" 
    # ... 
end 

Вы также проверить ваш Forwarding and POP/IMAP в вашем Gmail ..

включают эти строки кодов на вашем development.rb

config.action_mailer.default_url_options = {host: 'your server' } # ex. localhost:3000 
config.action_mailer.raise_delivery_errors = true # to raise error if smtp has error on setup 
config.action_mailer.default :charset => "utf-8" 
+0

спасибо, что я добавил, и это тоже не сработало. Я также проверил спам, и сообщения там нет. – kofhearts

+0

@ user734861 ok fine .. теперь вы должны включить «Пересылка и POP/IMAP» .. –

+0

Я включил IMAP. Должен ли я также включить pop? – kofhearts

0
  1. Если вы работаете с Gmail, вы должны активировать разрешение приложениям внешних приложений отправлять электронную почту через SMTP.
  2. В Rails режиме разработки не отправлять электронную почту, вы должны запустить Rails в производстве rails s -e production или включить config.action_mailer.raise_delivery_errors = true
  3. не забудьте использовать mail().deliver или для Rails 5+ mail().delivery_now

смотреть вам это моя конфигурация SMTP

config.action_mailer.delivery_method = :smtp 
    config.action_mailer.smtp_settings = { 
    :address    => ENV['mailer_address'], 
    :port     => ENV['mailer_port'], 
    :user_name   => ENV['mailer_username'], 
    :password    => ENV['mailer_password'], 
    :authentication  => "plain", 
    :enable_starttls_auto => true 
    } 

это мой класс Mailer

def send_email 
mail(to: "[email protected]", subject: 'not reply this message').deliver 
end 

Я вызываю эту функцию с моего контроллера. Если у вас возникли какие-либо ошибки, вы должны распечатать их, чтобы проверить, в чем проблема.

begin 
    myMailer.send_email 
rescue Exception => e 
    flash[:error] = "Imposible sent email, #{e.inspect}" 
end 
+0

спасибо jeff, но я включил pop, imap, а также включил менее безопасные приложения для доступа к разрешениям Gmail. Все еще с вышеуказанными настройками электронная почта не доставляется. – kofhearts

+0

вы можете создать проверку почты, если она работает ?, какая версия Rails работает? – Jeff

0

Стимулирующие менее безопасные приложения в настройках аккаунта работал для меня.

Настройки учетной записи Google> Вход в Google> прокрутите вниз до нижней

Включите позволяет менее безопасные приложения. Попробуйте отправить электронное письмо еще раз.

Смежные вопросы