Не удается получить электронную почту от приложения linode rails

Я развертываю приложение rails на Linode.

Что-то здесь странное. Я настраиваю gmail для электронной почты (например, приветственное письмо). Если я использую свою личную электронную почту для регистрации, я могу правильно получать электронную почту. Но если я использую электронную почту своей компании для регистрации, я не могу получать письма (даже в нежелательной почте).

Я проверил учетную запись gmail (которая отправляет электронное письмо). Оказывается, gmail отправил все письма правильно (я вижу их все в отправленных).

Затем я попробую среду разработки на моей локальной машине. Учетная запись электронной почты моей компании может получать приветственное письмо.

Мне кажется, что 1. настройка электронной почты в режиме продвижения в порядке. По крайней мере мой личный аккаунт, т.е. gmail, hotmail может получать приветственное письмо. 2. Сервер электронной почты моей компании разрешает входящую почту Gmail, потому что она работает в режиме разработки.

Не совсем понимаю, почему учетная запись моей компании не может получать электронную почту от приложения rails в рабочем режиме на linode. Это потому, что электронная почта отправляется с linode, поэтому сервер электронной почты моей компании игнорирует электронные письма с этих IP-адресов? Я думал, что электронное письмо отправляется сервером Gmail, а не линодом, правильно ли я понимаю? Есть ли кто-нибудь, кто может дать мне понять, что здесь происходит не так?

вставьте мое производство.rb

# Send deprecation notices to registered listeners
config.active_support.deprecation = :notify
config.action_mailer.default_url_options = { :host => 'xxxxx.com' }
#config.action_mailer.delivery_method = :smtp
config.action_mailer.raise_delivery_errors = false
config.action_mailer.perform_deliveries = true
#config.action_mailer.default :charset => "utf-8"

и окружающая среда.рб

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings =
{
  :address => "smtp.gmail.com",
  :port => 587,
  :domain => "xxxxx.com",
  :user_name => "[email protected]",
  :password => "xxxxxx",
  :authentication => :plain,
  :enable_starttls_auto => true
}

person user1495133    schedule 29.07.2013    source источник
comment
Вы настроили домен в файле config.rb?   -  person Arihant Godha    schedule 29.07.2013


Ответы (3)


Вы установили переменные окружения? Например, в вашем окружении/production.rb должно быть что-то вроде этого.

config.action_mailer.default_url_options = { :host => "ваш хост" }

person Arihant Godha    schedule 29.07.2013

один раз попытайтесь запустить приложение в производственном режиме на своем компьютере для разработки и установите его в production.rb

config.action_mailer.raise_delivery_errors = true

затем попробуйте отправить электронное письмо еще раз.

person Aman Garg    schedule 29.07.2013
comment
Я думаю, проблема не в том, что электронная почта не отправляется, а в том, что учетная запись электронной почты моей компании не может ее получить. Я попытался изменить riase_delivery_errors на true, к сожалению, это не сработало. - person user1495133; 30.07.2013

Я знаю, что этому вопросу уже пару лет, но я решил опубликовать то, что сработало для меня. Вот что я использовал для отправки электронных писем из Gmail в моем приложении Rails, размещенном на моем сервере Linode:

In config/environments/production.rb

Первой частью, которую я пропустил, был протокол, установите для него значение http:

config.action_mailer.default_url_options = { host: 'HOST_NAME', protocol: 'http' }

Далее и все еще в пределах config/environments/production.rb:

config.action_mailer.default :charset => "utf-8"

Наконец и все еще в пределах config/environments/production.rb:

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

Если после этих изменений он по-прежнему не работает, попробуйте изменить config/initializers/devise.rb следующим образом:

config.mailer_sender = '[email protected]'

Убедитесь, что адрес электронной почты, указанный в config/initializers/devise.rb, совпадает с адресом, указанным в config/environments/production.rb.

Надеюсь, это поможет кому-то.

person dmeyer    schedule 30.12.2015