Spec-Zone.ru › Ruby on Rails 7.2

класс ActionMailbox::Ingresses::Mailgun::InboundEmailsController

Родитель:
ActionMailbox::BaseController

Обрабатывает входящие электронные письма от 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 неправильно настроена или недоступна

Использование

  1. Предоставьте 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.

  2. Укажите Action Mailbox, что он должен принимать электронные письма от Mailgun:

    # config/environments/production.rb
    config.action_mailbox.ingress = :mailgun
    
  3. Настройка Mailgun для перенаправления входящих электронных писем на /rails/action_mailbox/mailgun/inbound_emails/mime.

    Если ваше приложение находилось по адресу https://example.com, вы бы указали полностью квалифицированный URL https://example.com/rails/action_mailbox/mailgun/inbound_emails/mime.

Методы публичного экземпляра

create() Показать исходный код
# 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API