class ActionMailbox::InboundEmail
The InboundEmail
is an Active Record that keeps a reference to the raw email stored in Active Storage and tracks the status of processing. By default, incoming emails will go through the following lifecycle:
-
Pending: Just received by one of the ingress controllers and scheduled for routing.
-
Processing: During active processing, while a specific mailbox is running its process method.
-
Delivered: Successfully processed by the specific mailbox.
-
Failed: An exception was raised during the specific mailbox’s execution of the
#process
method. -
Bounced: Rejected processing by the specific mailbox and bounced to sender.
Once the InboundEmail
has reached the status of being either delivered
, failed
, or bounced
, it’ll count as having been #processed?
. Once processed, the InboundEmail
will be scheduled for automatic incineration at a later point.
When working with an InboundEmail
, you’ll usually interact with the parsed version of the source, which is available as a Mail
object from #mail
. But you can also access the raw source directly using the #source
method.
Examples:
inbound_email.mail.from # => 'david@loudthinking.com'
inbound_email.source # Returns the full rfc822 source of the email as text
Inherits From
-
class
Record
Public instance methods
Source code GitHub
# File actionmailbox/app/models/action_mailbox/inbound_email.rb, line 33
def mail
@mail ||= Mail.from_source(source)
end
Source code GitHub
# File actionmailbox/app/models/action_mailbox/inbound_email.rb, line 41
def processed?
delivered? || failed? || bounced?
end
Source code GitHub
# File actionmailbox/app/models/action_mailbox/inbound_email.rb, line 37
def source
@source ||= raw_email.download
end
Namespace
Definition files
actionmailbox/
app/ models/ action_mailbox/ inbound_email.rb actionmailbox/
app/ models/ action_mailbox/ inbound_email/ incineratable.rb actionmailbox/
app/ models/ action_mailbox/ inbound_email/ incineratable/ incineration.rb actionmailbox/
app/ models/ action_mailbox/ inbound_email/ message_id.rb actionmailbox/
app/ models/ action_mailbox/ inbound_email/ routable.rb