跳到內容 跳到搜尋

封裝路由,可以針對 inbound_email 進行比對並提供比對之郵件信箱類別的查詢。有關不同路由地址以及如何在 ActionMailbox::Base 文件中使用它們的範例,請參閱範例。

方法
M
N

屬性

[R] address
[R] mailbox_name

類別公開方法

new(address, to:)

# File actionmailbox/lib/action_mailbox/router/route.rb, line 10
def initialize(address, to:)
  @address, @mailbox_name = address, to

  ensure_valid_address
end

實例公開方法

mailbox_class()

# File actionmailbox/lib/action_mailbox/router/route.rb, line 31
def mailbox_class
  "#{mailbox_name.to_s.camelize}Mailbox".constantize
end

match?(inbound_email)

# File actionmailbox/lib/action_mailbox/router/route.rb, line 16
def match?(inbound_email)
  case address
  when :all
    true
  when String
    inbound_email.mail.recipients.any? { |recipient| address.casecmp?(recipient) }
  when Regexp
    inbound_email.mail.recipients.any? { |recipient| address.match?(recipient) }
  when Proc
    address.call(inbound_email)
  else
    address.match?(inbound_email)
  end
end