2015-12-12 5 views
0

Этот код не отправляет электронную почту (ничего не происходит вообще - без ошибок). Что я делаю не так?Отправка электронной почты с Ruby через Gmail

/app/mailers/user_mailer.rb

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

    def email_test() 
    @user = '[email protected]' 
    mail(to: @user, subject: 'Welcome to My Awesome Site') 
    end 
end 

/config/development.rb:

config.action_mailer.perform_deliveries = true 
config.action_mailer.raise_delivery_errors = true 
config.action_mailer.default_options = {from: '[email protected]'} 

config.action_mailer.delivery_method = :smtp 
config.action_mailer.smtp_settings = { 
    :enable_starttls_auto => true, 
    :address => "smtp.gmail.com", 
    :port => 587, 
    :domain => "gmail.com", 
    :authentication => :login, 
    :user_name => "[email protected]", 
    :password => "password123", 
} 

Я призываю код в папке/приложения/ПОЧТООТПРАВИТЕЛЯХ /. Здесь я бег:

rails runner UserMailer.email_test

Это потому, что я ставлю настройку Gmail SMTP в development.rb, но я бег этого кода в командной строке?

Я уже включил «доступ к менее защищенным приложениям» в своей учетной записи gmail. Так смущенный, пожалуйста, посоветуйте спасибо!

+0

Является ли отправитель того же приемника? –

+0

Не могли бы вы попытаться настроить аутентификацию на ': plain'? Кроме того, среда не должна быть проблемой, введите 'Rails.env' на консоли, если вы хотите быть уверенным. – Roma149

+0

Может быть, ваш сервер не работает с почтой отправки, попробуйте сначала это 'echo 'Тестирование тела" | mail -s "Тема теста" your @ email.com' – shilovk

ответ

1

Для Rails 3:

rails runner "UserMailer.email_test.deliver" 

Для Rails 4:

bin/rails runner "UserMailer.email_test.deliver_now" 
Смежные вопросы