Придумать регистрационное письмо, не пришедшее "Доставленная почта" странно и содержит имя Macbook - PullRequest
0 голосов
/ 19 марта 2020

Пожалуйста, кто-нибудь может мне помочь. Я настроил sendGrid с помощью devise. Я следовал многочисленным учебникам и сделал все правильно, но после того, как пользователь зарегистрировал сайт файла журнала со следующими строками:

Rendering devise/mailer/confirmation_instructions.html.erb
Rendered devise/mailer/confirmation_instructions.html.erb (Duration: 0.4ms | Allocations: 91)
Devise::Mailer#confirmation_instructions: processed outbound mail in 3.7ms

После того, что кажется вечностью, настоящая страница перенаправляется на интерфейс и журнал Обновления со следующим. Если вы посмотрите на первую строку «Доставленная почта» и «Идентификатор сообщения», они содержат какой-то сумасшедший случайный адрес электронной почты с именем моего Macbook.

Delivered mail 5e7293e497bf4_4b8a3ff2574a84c04004a@Gerards-MBP-2.mail (60180.2ms)
Date: Wed, 18 Mar 2020 21:34:28 +0000
From: hey@test.com
Reply-To: hey@test.com
To: gerardd1@googlemail.com
Message-ID: <5e7293e497bf4_4b8a3ff2574a84c04004a@Gerards-MBP-2.mail>
Subject: Confirmation instructions
Mime-Version: 1.0
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

<p>Welcome gerardd1@googlemail.com!</p>

<p>You can confirm your account email through the link below:</p>

<p><a href="http://localhost:3000/users/confirmation?confirmation_token=bJiYjwaRVzvbDPc7F9Y4">Confirm my account</a></p>

Redirected to http://localhost:3000/verify
Completed 302 Found in 62111ms (ActiveRecord: 75.1ms | Allocations: 33693)

Настройки конфигурации:

devise.rb

config.mailer_sender = 'hey@test.com'

environment.rb

ActionMailer::Base.smtp_settings = {
  :user_name => ENV['SENDGRID_USERNAME'],
  :password => ENV['SENDGRID_PASSWORD'],
  :domain => 'heroku.com',
  :address => 'smtp.sendgrid.net',
  :port => 465,
  :authentication => :plain,
  :enable_starttls_auto => true
}

development.rb

config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }

Если бы кто-нибудь мог мне помочь с этим, я был бы очень благодарен. Это стоило мне полтора дня.

Спасибо за вашу помощь заранее.

Ответы [ 2 ]

0 голосов
/ 19 марта 2020

Проблема заключалась в том, что я настраивал PORT в файлах environment.rb и development.rb. Как только я удалил его из environment.rb, он заработал.

0 голосов
/ 19 марта 2020

Как насчет того, чтобы попробовать это в вашем development.rb:

  config.action_mailer.perform_caching = false

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.default_url_options = { host: "localhost" }
  config.action_mailer.smtp_settings = {
    domain: 'localhost',
    address: "stmp.sendgrid.net",
    port: 3000,
    authentication: :plain,
    enable_starttls_auto: true,
    user_name: ENV['SENDGRID_USERNAME'],
    password: ENV['SENDGRID_PASSWORD']
}

Кроме того, если вы можете ... попробуйте запустить его с производства. По моему опыту, всегда легче заставить почтовых программ работать на производственном сервисе, таком как Heroku, чем в разработке с P C.

Кроме того, убедитесь, что вы нигде не загружаете свои учетные данные SendGrid онлайн, как GitHub. Это угроза безопасности, и ваша учетная запись будет отключена. Убедитесь, что ваш файл .env находится в вашем .gitignore, и вы удалили учетные данные из вашего environment.rb.

...