Рельсы smtp выдают - PullRequest
       7

Рельсы smtp выдают

0 голосов
/ 29 марта 2019

Я младший разработчик рельсов. Я пытаюсь отправить письмо через smtp на gmail.com я нашел эту статью в интернете. мой environments/production.rb

  config.action_mailer.delivery_method = :sendmail
  config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.default_options = {from: 'pangodfather@gmail.com'}

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
      address:              'smtp.gmail.com',
      port:                 587,
      domain:               'devb.carwash.it',
      user_name:            'myaccount@gmail.com',
      password:             'mypass',
      authentication:       'plain',
      enable_starttls_auto: true
  }

Вот так я пытаюсь отправить почту

   UserNotificationMailer.send_change_password_link(@user, params[:user][:password]).deliver_now

У меня есть эта ошибка. Net :: SMTPSyntaxError (501 Синтаксис: HELO имя хоста

На моем сервере, если я запускаю hostname имя хоста, вывод:

devb.carwash.it

Что я делаю не так? Спасибо

Ответы [ 3 ]

0 голосов
/ 30 марта 2019

Позвольте мне рассказать вам, с какими проблемами я столкнулся при исправлении этой проблемы в Gmail.

  1. Во-первых включить Менее безопасные приложения войти в Gmail.

    посетите настройки Gmail и включите менее безопасные приложения, чтобы приложение работало.

  2. Измените значение из: ключ аутентификации с *От 1017 * до :login

  3. ЕСЛИ у вас есть включенная двухэтапная проверка для доступа к Gmail, вам необходимо дать разрешение вашему приложению.

Надеюсь, это поможет:)

0 голосов
/ 31 марта 2019

так что, к сожалению, у меня нет решения этой проблемы. Мое исправление - не использовать mail () из action mailer, а использовать Mail gem - все работает нормально.

0 голосов
/ 29 марта 2019

Домен должен быть gmail.com, вы установили его на свой собственный домен, но это неверно.

Из документов Ruby :

Домен HELO

Почти во всех ситуациях вы должны предоставить третий аргумент :: start / SMTP#Начните.Это доменное имя, на котором вы находитесь (хост для отправки почты).Он называется «домен HELO».Сервер SMTP определит, должен ли он отправлять или отклонять сеанс SMTP, проверяя домен HELO.

Пример конфигурации:

config.action_mailer.smtp_settings = {
      address:              'smtp.gmail.com',
      port:                 587,
      domain:               'gmail.com',
      user_name:            'myaccount@gmail.com',
      password:             'mypass',
      authentication:       :plain,
      enable_starttls_auto: true
  }
...