class ActionMailbox::Ingresses::Sendgrid::InboundEmailsController
Обрабатывает входящие электронные письма из SendGrid. Требуется параметр email, содержащий полное сообщение RFC 822.
Проверяет подлинность запросов с помощью аутентификации HTTP Basic. Имя пользователя всегда actionmailbox, а пароль считывается из зашифрованных учетных данных приложения или переменной окружения. См. раздел "Использование" ниже.
Обратите внимание, что аутентификация Basic небезопасна по незащищенному протоколу HTTP. Злоумышленник, перехватывающий запросы в открытом виде, может узнать пароль SendGrid. Используйте вход SendGrid только через HTTPS.
Возвращает:
-
204 No Contentесли входящее электронное письмо успешно записано и помещено в очередь для маршрутизации в соответствующую почтовую ящик -
401 Unauthorizedесли подпись запроса не удалось проверить -
404 Not Foundесли Action Mailbox не настроен для приема входящих писем от SendGrid -
422 Unprocessable Entityесли в запросе отсутствует необходимый параметрemail -
500 Server Errorесли пароль входа не настроен или один из компонентов Active Record базы данных, Active Storage службы или Active Job бэкенда не настроен или недоступен
Использование
-
Укажите Action Mailbox для приема писем от SendGrid:
# config/environments/production.rb config.action_mailbox.ingress = :sendgrid
-
Создайте надежный пароль, который Action Mailbox может использовать для аутентификации запросов к входу SendGrid.
Используйте
bin/rails credentials:editдля добавления пароля в зашифрованные данные приложения в разделеaction_mailbox.ingress_password, где Action Mailbox автоматически его найдет:action_mailbox: ingress_password: ...
В качестве альтернативы укажите пароль в переменной окружения
RAILS_INBOUND_EMAIL_PASSWORD -
Настройка обработки входящих писем SendGrid для перенаправления входящих писем на
/rails/action_mailbox/sendgrid/inbound_emailsс именем пользователяactionmailboxи ранее сгенерированным паролем. Если ваше приложение находится по адресуhttps://example.com, вы настроили SendGrid следующим полным URL:https://actionmailbox:PASSWORD@example.com/rails/action_mailbox/sendgrid/inbound_emails
ПРИМЕЧАНИЕ: При настройке веб-хука обработки входящих писем SendGrid обязательно установите флажок *“Опубликовать исходное полное 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! mail rescue JSON::ParserError => error logger.error error.message head :unprocessable_entity end
© 2004–2020 David Heinemeier Hansson
Licensed under the MIT License.