класс 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 49 def create ActionMailbox::InboundEmail.create_and_extract_message_id! mail end
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.