класс ActionMailbox::Ingresses::Sendgrid::InboundEmailsController
Обрабатывает входящие электронные письма из SendGrid. Требуется параметр email, содержащий полное сообщение RFC 822.
Проверяет подлинность запросов с помощью HTTP-аутентификации по основанию. Имя пользователя всегда actionmailbox, а пароль считывается из зашифрованных данных приложения или переменной окружения. См. раздел "Использование" ниже.
Обратите внимание, что аутентификация по основанию небезопасна по незащищенному протоколу HTTP. Злоумышленник, перехватывающий запросы в открытом виде к SendGrid, может узнать пароль. Вы должны использовать SendGrid только по HTTPS.
Возвращает:
-
204 No Contentесли входящее электронное письмо успешно записано и поставлено в очередь для маршрутизации в соответствующий почтовый ящик -
401 Unauthorizedесли подпись запроса не смогла пройти проверку -
404 Not Foundесли Action Mailbox не настроен для приема входящих электронных писем от SendGrid -
422 Unprocessable Entityесли в запросе отсутствует необходимый параметрemail -
500 Server Errorесли пароль ingress не настроен, или если одна из баз данных Active Record, служба Active Storage или бэкенд Active Job неправильно настроена или недоступна
Использование
-
Укажите Action Mailbox на принятие писем от SendGrid:
# config/environments/production.rb config.action_mailbox.ingress = :sendgrid
-
Сгенерируйте надежный пароль, который Action Mailbox сможет использовать для проверки подлинности запросов к SendGrid ingress.
Используйте
rails credentials:editдля добавления пароля в зашифрованные данные вашего приложения подaction_mailbox.ingress_password, где Action Mailbox автоматически найдет его:action_mailbox: ingress_password: ...
В качестве альтернативы, укажите пароль в переменной окружения
RAILS_INBOUND_EMAIL_PASSWORD -
Настройка SendGrid Inbound Parse для перенаправления входящих электронных писем на
/rails/action_mailbox/sendgrid/inbound_emailsс именем пользователяactionmailboxи ранее сгенерированным паролем. Если ваше приложение расположено по адресуhttps://example.com, вы должны настроить SendGrid следующим полным URL:https://actionmailbox:PASSWORD@example.com/rails/action_mailbox/sendgrid/inbound_emails
ПРИМЕЧАНИЕ: При настройке webhook SendGrid Inbound Parse убедитесь, что вы установили флажок *“Отправить исходное полное сообщение MIME”*. Action Mailbox нуждается в исходном сообщении MIME для работы.
Методы публичного экземпляра
# File actionmailbox/app/controllers/action_mailbox/ingresses/sendgrid/inbound_emails_controller.rb, line 50 def create ActionMailbox::InboundEmail.create_and_extract_message_id! params.require(:email) end
© 2004–2019 David Heinemeier Hansson
Licensed under the MIT License.