Spec-Zone.ru › Ruby on Rails 6.1

class ActionMailbox::Ingresses::Mailgun::InboundEmailsController

Parent:
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 48
def create
  ActionMailbox::InboundEmail.create_and_extract_message_id! mail
end

© 2004–2020 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

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