Spec-Zone.ru › Ruby on Rails 8.1

class 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 (его можно найти в 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.

  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