class ActionMailbox::Ingresses::Mailgun::InboundEmailsController
Обрабатывает входящие электронные письма из Mailgun. Требует следующих параметров:
-
body-mime: Полное сообщение RFC 822 -
timestamp: Текущее время по Mailgun в виде количества секунд, прошедших с эпохи Unix -
token: Случайно сгенерированная строка длиной 50 символов -
signature: Шестнадцатеричное HMAC-SHA256 от времени метки и токена, сгенерированное с использованием ключа подписи Mailgun
Проверяет подписи запросов для аутентификации.
Возвращает:
-
204 No Contentесли входящее электронное письмо успешно записано и поставлено в очередь для маршрутизации в соответствующий почтовый ящик -
401 Unauthorizedесли подпись запроса не удалось проверить или отметка времени более чем на 2 минуты устарела -
404 Not Foundесли Action Mailbox не настроен для приема входящих писем от Mailgun -
422 Unprocessable Entityесли запрос отсутствует требуемые параметры -
500 Server Errorесли ключ подписи Mailgun отсутствует или одна из баз данных Active Record, служба Active Storage или бэкенд Active Job неправильно настроена или недоступна
Использование
-
Предоставьте Action Mailbox ваш ключ подписи Mailgun (который вы можете найти в Настройки -> Безопасность и пользователи -> Безопасность API в Mailgun), чтобы он мог аутентифицировать запросы к входу Mailgun.
Используйте
bin/rails credentials:editдля добавления вашего ключа подписи в зашифрованные учетные данные вашего приложения вaction_mailbox.mailgun_signing_key, где Action Mailbox автоматически его найдет:action_mailbox: mailgun_signing_key: ...
В качестве альтернативы, укажите свой ключ подписи в переменной окружения
MAILGUN_INGRESS_SIGNING_KEY. -
Укажите Action Mailbox на прием писем от Mailgun:
# config/environments/production.rb config.action_mailbox.ingress = :mailgun
-
Настройте Mailgun для переадресации входящих писем на
/rails/action_mailbox/mailgun/inbound_emails/mime.Если ваше приложение размещено по адресу
https://example.com, вы должны указать полный URLhttps://example.com/rails/action_mailbox/mailgun/inbound_emails/mime.
Публичные методы экземпляров
# File actionmailbox/app/controllers/action_mailbox/ingresses/mailgun/inbound_emails_controller.rb, line 48 def create ActionMailbox::InboundEmail.create_and_extract_message_id! mail end
© 2004–2020 David Heinemeier Hansson
Licensed under the MIT License.