Rails Cast: письмо ActionMailer не отправлено на входящие - PullRequest
1 голос
/ 14 июня 2011

Сервер сообщает, что электронное письмо было отправлено на правильный адрес, но я не получаю сообщение в своем почтовом ящике.

Мой файл Setup_mail.rb

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

Мой development.rb файл:

# Don't care if the mailer can't send
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true #default value
config.action_mailer.delivery_method = :smtp #default value

Мой test.rb файл:

config.action_mailer.delivery_method = :smtp

Я пробовал несколько вариантов и потерян. Я работаю на машине с Windows 7. Я использую Ruby 1.8.7 и Rails 3.0.7

Может кто-нибудь помочь?

Вот мой метод создания:

def create
 @user = User.new(params[:user])
 if @user.save
   UserMailer.registration_confirmation(@user).deliver
   sign_in @user
   redirect_to @user, :flash => { :success => "Welcome to the Sample App!" }
 else
   @title = "Sign up"
   render 'new'
 end
end

Мой user_mailer.rb класс UserMailer

default :from => "my_user_name@gmail.com"

def registration_confirmation(user)
mail(:to => user.email, :subject => "Thanks for registering")

end
end

Ответы [ 5 ]

5 голосов
/ 14 июня 2011

Посмотрите на свой сервер.Я уверен, что в ваших журналах вы видите, что он пытается отправить почту.

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

Если вы пробуете свое приложение в работе, это обычно работает, например, разверните свое приложение на heroku, чтобы протестировать его.

2 голосов
/ 23 декабря 2013

Попробуйте ввести .deliver в конце.Это исправило эту проблему для меня:

mail(:to .....).deliver!
0 голосов
/ 03 февраля 2019

У меня была такая же проблема, я мог видеть, что в моей консоли была отправлена ​​почта, но в папке «Входящие» ничего не появлялось, во-первых, вы можете развернуть свое приложение на сервере из белого списка, таком как heroku, или если вы хотите видетьдля тестирования через локальную сеть просто включите менее безопасные приложения в браузере, и вы сможете увидеть это электронное письмо в своем почтовом ящике https://myaccount.google.com/lesssecureapps

0 голосов
/ 14 июня 2011

Вы должны убедиться, что my_user_name@gmail.com действительно отправил электронное письмо.В прошлом у нас были проблемы с этим при отправке подтверждающих электронных писем через SMTP-сервер Gmail, поскольку массовая отправка в итоге не отправляется вообще.

Я предлагаю вам войти в my_user_name@gmail.com и убедиться, чтоНет проблем, и письма отправляются.

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

0 голосов
/ 14 июня 2011

Попробуйте изменить аутентификацию со строки на символ.

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