класс ActionMailbox::Ingresses::Mailgun::InboundEmailsController
Обрабатывает входящие электронные письма от Mailgun. Требует следующих параметров:
-
body-mime: Полное сообщение RFC 822 -
timestamp: Текущее время по Mailgun как количество секунд, прошедших с начала эпохи UNIX -
token: Случайная строка длиной 50 символов -
signature: Шестнадцатеричный HMAC-SHA256 от метки времени, конкатенированной с токеном, сгенерированный с использованием ключа API Mailgun
Проверяет подписи запросов.
Возвращает:
-
204 No Contentесли входящее электронное письмо успешно записано и поставлено в очередь для маршрутизации в соответствующий почтовый ящик -
401 Unauthorizedесли подпись запроса не может быть проверена или метка времени запроса старше 2 минут -
404 Not Foundесли Action Mailbox не настроен на прием входящих электронных писем от Mailgun -
422 Unprocessable Entityесли запрос отсутствует необходимые параметры -
500 Server Errorесли ключ API Mailgun отсутствует или одна из баз данных Active Record, служба Active Storage или бэкенд Active Job неправильно настроена или недоступна
Использование
-
Предоставьте Action Mailbox ваш ключ API Mailgun, чтобы он мог аутентифицировать запросы к входу Mailgun.
Используйте
rails credentials:editдля добавления ключа API в зашифрованные учетные данные приложения вaction_mailbox.mailgun_api_key, где Action Mailbox автоматически его найдет:action_mailbox: mailgun_api_key: ...
В качестве альтернативы, предоставьте ключ API в переменной среды
MAILGUN_INGRESS_API_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! params.require("body-mime")
end
© 2004–2019 David Heinemeier Hansson
Licensed under the MIT License.