Spec-Zone.ru › Ruby on Rails 6.0

класс ActionMailbox::InboundEmail

Родитель:
ActiveRecord::Base
Включенные модули:
ActionMailbox::InboundEmail::Incineratable, ActionMailbox::InboundEmail::MessageId, ActionMailbox::InboundEmail::Routable

Объект InboundEmail — это запись Active Record, которая хранит ссылку на исходное электронное письмо, сохранённое в Active Storage, и отслеживает статус обработки. По умолчанию, входящие электронные письма проходят через следующие стадии:

  • Ожидание: электронное письмо только что получено одним из контроллеров входящих сообщений и запланировано для маршрутизации.

  • Обработка: во время активной обработки, пока конкретная почтовая папка выполняет метод обработки.

  • Доставлено: успешно обработано конкретной почтовой папкой.

  • Не удалось: во время выполнения метода #process в конкретной почтовой папке была поднята исключительная ситуация.

  • Отклонено: обработка была отклонена конкретной почтовой папкой и возвращено сообщение отправителю.

После того, как InboundEmail достигнет статуса delivered, failed, или bounced, он будет считаться #processed?. После обработки InboundEmail будет запланировано для автоматического удаления в более позднее время.

При работе с InboundEmail, обычно взаимодействуют с разобранной версией исходного материала, доступной как объект Mail из #mail. Но также можно получить доступ к исходному материалу напрямую, используя метод #source.

Примеры:

inbound_email.mail.from # => 'david@loudthinking.com'
inbound_email.source # Returns the full rfc822 source of the email as text

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

mail() Показать исходный код
# File actionmailbox/app/models/action_mailbox/inbound_email.rb, line 35
def mail
  @mail ||= Mail.from_source(source)
end
processed?() Показать исходный код
# File actionmailbox/app/models/action_mailbox/inbound_email.rb, line 43
def processed?
  delivered? || failed? || bounced?
end
source() Показать исходный код
# File actionmailbox/app/models/action_mailbox/inbound_email.rb, line 39
def source
  @source ||= raw_email.download
end

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

Spec-Zone.ru

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