class Mail::Message
def address_list(obj)
def address_list(obj) if obj&.respond_to?(:element) # Mail 2.8+ obj.element else # Mail <= 2.7.x obj&.address_list end end
def bcc_addresses
def bcc_addresses Array(address_list(header[:bcc])&.addresses) end
def cc_addresses
def cc_addresses Array(address_list(header[:cc])&.addresses) end
def from_address
def from_address address_list(header[:from])&.addresses&.first end
def recipients
def recipients Array(to) + Array(cc) + Array(bcc) + Array(header[:x_original_to]).map(&:to_s) end
def recipients_addresses
def recipients_addresses to_addresses + cc_addresses + bcc_addresses + x_original_to_addresses end
def to_addresses
def to_addresses Array(address_list(header[:to])&.addresses) end
def x_original_to_addresses
def x_original_to_addresses Array(header[:x_original_to]).collect { |header| Mail::Address.new header.to_s } end