Welcome, guest! Login / Register - Why register?
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

Your Name: Code Language: