2015-10-06 2 views
0

Моя почта Rails отлично работала несколько месяцев назад. Я не занимался этим долгое время, и я тоже ничего не помню. Но теперь, когда я активирую почтовую программу через консоль, не отправляется никакая электронная почта, хотя я не получаю никаких ошибок.Rails mailer не выдает ошибки, но электронная почта не приходит

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

Я использую Rails 4.0.10.

конфигурации/среда/development.rb

Website::Application.configure do 
    config.action_mailer.delivery_method = :smtp 
    config.action_mailer.default_url_options = { host:'localhost', port: '3000' } 
    config.action_mailer.perform_deliveries = true 
    config.action_mailer.raise_delivery_errors = true 
    config.action_mailer.default :charset => "utf-8" 
    config.action_mailer.smtp_settings = { 
    address: 'smtp.gmail.com', 
    port: 587, 
    domain: 'localhost:3000', 
    user_name: '[email protected]', 
    password: 'password', 
    authentication: 'plain', 
    enable_starttls_auto: true 
    } 
end 

приложение/мейлеры/user_mailer

class UserMailer < ActionMailer::Base 
    default from: "[email protected]" 

    def notify(user) 
    @user = user 
    mail(to: @user.email,subject: "subject") 
    end 
end 

консоли

$ UserMailer.notify(User.first) 
Rendered user_mailer/notify.html.erb (0.4ms) 
=> #<Mail::Message:2623523, Multipart: false, Headers: <From: [email protected]>, <To: [email protected]>, <Subject: subject>, <Mime-Version: 1.0>, <Content-Type: text/html>> 
+0

Вы можете разместить действие контроллера, где вы звоните метод почтовой программы? – Pavan

+0

@Pavan Я просто звоню в мою консоль dev. –

ответ

1

методы использования Mailer deliver, deliver_now или deliver_later в вашем controller или Model

UserMailer.notify(User.first).deliver 
+0

Я использую Rails 4.0.10, поэтому я не думаю, что эти методы были введены. –

+0

Затем используйте '.deliver' – Prashant4224

+0

Там мы идем, спасибо! –

0

Вы должны позвонить .deliver_now или .deliver_later по результатам вашего метода notify. Узнайте, как использовать ActionMailer для получения дополнительной информации.

+0

Я использую Rails 4.0.10, поэтому я не думаю, что эти методы были введены. –