У меня установлено приложение Rails 5 на Heroku.Я использую устройство для электронной почты и настроил все правильно, чтобы отправлять электронные письма для сброса пароля.Это прекрасно работает в моей среде разработки.Однако при отправке с производства в папке входящих сообщений 0365 появляется ошибка:
Generating server: CO2PR13MB0140.namprd13.prod.outlook.com
myemail@gmail.com
Remote Server returned '550 5.7.708 Service unavailable. Access denied, traffic
not accepted from this IP. For more information please go to
http://go.microsoft.com/fwlink/?LinkId=526653 AS(8561)
[CO2PR13MB0124.namprd13.prod.outlook.com]'
Original message headers:
Received: from CO2PR13MB0140.namprd13.prod.outlook.com
([fe80::c872:9c6:9d6a:8b3]) by CO2PR13MB0140.namprd13.prod.outlook.com
([fe80::c872:9c6:9d6a:8b3%4]) with mapi id 15.20.1339.019; Wed, 14 Nov 2018
02:42:20 +0000
MIME-Version: 1.0
Content-Type: text/plain
Date: Wed, 14 Nov 2018 02:42:20 +0000
Message-ID:
<5beb8b87e888a_42b06292aba70609bd@01184e4c-2116-478b-a773-fcc26ac206aa.mail>
Subject: Reset password instructions
При просмотре и обращении в службу поддержки выясняется, что он отклонен, поскольку сторонний сервер(я предполагаю, что мое приложение на Heroku) пытается отправить электронное письмо с настройками 0365.
Вот мои настройки development.rb, которые отлично работают:
# Don't care if the mailer can't send.
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_caching = true
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => 'smtp.office365.com',
:port => '587',
:authentication => :login,
:user_name => ENV['365_USERNAME'],
:password => ENV['365_PASSWORD'],
:domain => 'mysite.com',
:enable_starttls_auto => true
}
Вот мои настройки production.rb, которые заставляют O365 отклонять электронную почту.Я пытался играть с этим совсем немного.И я убедился, что электронная почта «от» соответствует электронной почте для входа.т.е. я не пытаюсь отправить письмо с no-reply@mysite.com или аналогичного.
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_caching = false
config.action_mailer.default_url_options = { :host => 'www.mysite.com' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => 'smtp.office365.com',
:port => '587',
:authentication => :login,
:user_name => ENV['365_USERNAME'],
:password => ENV['365_PASSWORD'],
:domain => 'mysite.com',
:enable_starttls_auto => true
}
Из обсуждений с поддержкой.Возможно, мне понадобится добавить запись SPF TXT, чтобы разрешить отправку электронных писем с удаленного сервера.Проблема в том, что я понятия не имею, что добавить к записи SPF.Моя текущая spf-запись:
v=spf1 include:spf.protection.outlook.com -all