Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as Python by Jens Georg ( 19 years ago )
# fetch simple mapping already resolved
# address -> mailbox
# later on, address -> external address mappings will be added as well
query = """select alias, dest from virtual
where dest not in (select alias from virtual)
and dest not like "%@%"
and alias like "%@%" order by dest asc"""
cursor.execute(query)
resolved = dict(cursor.fetchall())
# fetch simple mapping
# mailbox -> external email address
query = """select alias, dest from virtual
where dest not in (select alias from virtual)
and dest like "%@%"
and alias not like "%@%" order by dest asc"""
cursor.execute(query)
external_forwards = dict(cursor.fetchall())
# now fetch address->mailbox mappings left to resolve
query = """select alias,dest from virtual
where dest in (select alias from virtual)
and alias like "%@%" order by alias"""
cursor.execute(query)
address_to_mailbox = dict(cursor.fetchall())
query = """select alias,dest from virtual
where dest in (select alias from virtual)
and alias not like "%@%" order by alias"""
# now fetch address->mailbox mappings left to resolve
query = """select alias,dest from virtual
where dest in (select alias from virtual)
and alias not like "%@%" order by alias"""
cursor.execute(query)
mailbox_to_address = dict(cursor.fetchall())
addresses = address_to_mailbox.keys()
while (addresses):
address = addresses.pop()
mailbox = address_to_mailbox[address]
# first check, if this is an final external forward
if external_forwards.has_key(mailbox):
resolved[address] = external_forwards[mailbox]
continue
# ok, no external forward, so the mailbox is forwarded to
# another address
if mailbox_to_address.has_key(mailbox):
new_address = mailbox_to_address[mailbox]
# now check if we already know this address
if resolved.has_key(new_address):
resolved[address] = resolved[new_address]
else:
address_to_mailbox[address] = address_to_mailbox[new_address]
addresses.append(address)
for k,v in resolved.iteritems():
print "%s %s" % (k,v)
Revise this Paste