Spec-Zone.ru › Ruby on Rails 6.0

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

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

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

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

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

  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! params.require("body-mime")
end

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

Spec-Zone.ru

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