InboundEmail
是一个 Active Record,它保存了存储在 Active Storage 中的原始电子邮件的引用,并跟踪处理状态。默认情况下,传入的电子邮件将经历以下生命周期
-
Pending: 刚刚由一个 ingress 控制器接收并安排路由。
-
Processing: 在活动处理期间,当一个特定邮箱正在运行其处理方法时。
-
Delivered: 由特定邮箱成功处理。
-
Failed: 在特定邮箱执行
#process
方法期间引发了异常。 -
Bounced: 被特定邮箱拒绝处理并退回发件人。
一旦 InboundEmail
达到 delivered
、failed
或 bounced
的状态,它将被视为已 #processed?
。处理后,InboundEmail
将在稍后被安排自动焚化。
当使用 InboundEmail
时,你通常会与源解析后的版本进行交互,该版本可作为 Mail
对象从 #mail
获得。但你也可以使用 #source
方法直接访问原始源。
示例
inbound_email.mail.from # => '[email protected]'
inbound_email.source # Returns the full rfc822 source of the email as text
命名空间
- 模块 ActionMailbox::InboundEmail::Incineratable
- 模块 ActionMailbox::InboundEmail::MessageId
- 模块 ActionMailbox::InboundEmail::Routable
方法
- M
- P
- S
实例公共方法
mail() 链接
来源: 显示 | 在 GitHub 上
# File actionmailbox/app/models/action_mailbox/inbound_email.rb, line 33 def mail @mail ||= Mail.from_source(source) end
processed?() 链接
来源: 显示 | 在 GitHub 上
# File actionmailbox/app/models/action_mailbox/inbound_email.rb, line 41 def processed? delivered? || failed? || bounced? end
source() 链接
来源: 显示 | 在 GitHub 上
# File actionmailbox/app/models/action_mailbox/inbound_email.rb, line 37 def source @source ||= raw_email.download end