跳至内容 跳至搜索

InboundEmail 是一个 Active Record,它保存对存储在 Active Storage 中的原始电子邮件的引用,并跟踪处理状态。默认情况下,传入的电子邮件将经历以下生命周期

  • 待处理:刚由一个入口控制器接收并安排路由。

  • 处理中:在活动处理期间,当特定邮箱正在运行其处理方法时。

  • 已送达:由特定邮箱成功处理。

  • 失败:在特定邮箱执行 #process 方法期间引发了异常。

  • 退回:被特定邮箱拒绝处理并退回给发件人。

一旦 InboundEmail 达到 deliveredfailedbounced 状态,它将被视为已 #processed?。处理完成后,InboundEmail 将安排在稍后时间自动销毁。

在使用 InboundEmail 时,通常会与源的解析版本进行交互,该版本可作为 #mailMail 对象获得。但您也可以使用 #source 方法直接访问原始源。

示例

inbound_email.mail.from # => 'david@loudthinking.com'
inbound_email.source # Returns the full rfc822 source of the email as text
命名空间
方法
M
P
S

实例公共方法

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