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 (его можно найти в Mailgun в разделе Settings -> Security & Users -> API security), чтобы он мог аутентифицировать запросы к точке приема 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.