class Mail::Message

def bcc_addresses

def bcc_addresses
  Array(header[:bcc]&.address_list&.addresses)
end

def cc_addresses

def cc_addresses
  Array(header[:cc]&.address_list&.addresses)
end

def from_address

def from_address
  header[:from]&.address_list&.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(header[:to]&.address_list&.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