92 lines
1.8 KiB
Ruby
Executable file
92 lines
1.8 KiB
Ruby
Executable file
require 'net/imap'
|
|
|
|
module ImapMessageModule
|
|
|
|
class IMAPAddress
|
|
|
|
attr_accessor :name,:mailbox,:host
|
|
|
|
def initialize()
|
|
name = ""
|
|
mailbox = ""
|
|
host = ""
|
|
end
|
|
|
|
def self.from_address(addr)
|
|
a = IMAPAddress.new()
|
|
a.name = addr.name || ""
|
|
a.mailbox = addr.mailbox || ""
|
|
a.host = addr.host || ""
|
|
a
|
|
end
|
|
|
|
def to_db
|
|
name + "#" + mailbox + "#" + host
|
|
end
|
|
|
|
def self.parse(addr)
|
|
a = IMAPAddress.new()
|
|
f = addr.split("#")
|
|
a.name = f[0]
|
|
a.mailbox = f[1]
|
|
a.host = f[2]
|
|
a
|
|
end
|
|
|
|
def friendly
|
|
if name.empty?
|
|
mailbox + host
|
|
else
|
|
name
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
class IMAPMessage
|
|
|
|
@@fetch_attr = ['RFC822.HEADER', 'FLAGS', 'UID', 'RFC822.SIZE']
|
|
#@@fetch_attr = ['RFC822','FLAGS', 'UID', 'RFC822.SIZE']
|
|
|
|
# attr_accessor :envelope,:uid,:content_type,:size,:unseen,:from,:message_id,:to,:from,:subject,:date
|
|
#
|
|
# def initialize
|
|
# end
|
|
#
|
|
# def self.fromImap(message)
|
|
# m = IMAPMessage.new
|
|
# envelope = message.attr['ENVELOPE']
|
|
# m.envelope = envelope
|
|
# m.message_id = envelope.message_id
|
|
# m.date = envelope.date
|
|
# m.subject = envelope.subject
|
|
# m.uid = message.attr['UID']
|
|
# #content_type = m.attr['BODYSTRUCTURE'].multipart? ? 'multipart' : 'text'
|
|
# m.content_type = message.attr['BODYSTRUCTURE'].media_type.downcase
|
|
# m.size = message.attr['RFC822.SIZE']
|
|
# m.unseen = !(message.attr['FLAGS'].member? :Seen)
|
|
# m.from = IMAPAddress.from_address(envelope.from[0])
|
|
# m.to = IMAPAddress.from_address(envelope.to[0])
|
|
# m
|
|
# end
|
|
#
|
|
def self.fetch_attr
|
|
@@fetch_attr
|
|
end
|
|
#
|
|
# def from_to_db
|
|
# from.to_db
|
|
# end
|
|
#
|
|
# def to_to_db
|
|
# to.to_db
|
|
# end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|
|
|