diff --git a/app.py b/app.py index c69c069..3976b21 100644 --- a/app.py +++ b/app.py @@ -87,69 +87,35 @@ def miab_auth(username, password): def get_aliases(username): a = requests.get(miab_url + "/mail/aliases?format=json", auth=(miab_admin, miab_passwd)) data = a.json() - i=1 #start with 1 to skip miab main domain - aliases = [] - while i < len(data): - j=0 - while j < len(data[i]['aliases']): - if len(data[i]['aliases'][j]['forwards_to']) == 1: - if data[i]['aliases'][j]['forwards_to'][0] == username: - aliases.append(data[i]['aliases'][j]['address']) - j+=1 - i+=1 + aliases = [alias['address'] for user in data[1:] for alias in user['aliases'] if alias['forwards_to'] and alias['forwards_to'][0] == username] return aliases # get all addresses available on miab def get_addresses(): - addresses = [] # get alias data a = requests.get(miab_url + "/mail/aliases?format=json", auth=(miab_admin, miab_passwd)) aliases = a.json() - i=0 - while i < len(aliases): - j=0 - while j < len(aliases[i]['aliases']): - addresses.append(aliases[i]['aliases'][j]['address']) - j+=1 - i+=1 - # get user data u = requests.get(miab_url + "/mail/users?format=json", auth=(miab_admin, miab_passwd)) users = u.json() - i=0 - while i < len(users): - j=0 - while j < len(users[i]['users']): - addresses.append(users[i]['users'][j]['email']) - j+=1 - i+=1 + # generate list of all addresses on the box + addresses = [alias['address'] for user in aliases for alias in user['aliases']] + addresses.extend([ user['email'] for domains in users for user in domains['users']]) return addresses # get all valid domains from miab def get_domains(): - domains = [] u = requests.get(miab_url + "/mail/users?format=json", auth=(miab_admin, miab_passwd)) users = u.json() - i=0 - while i < len(users): - domains.append(users[i]['domain']) - i+=1 + domains = [ user['domain'] for user in users ] return domains # get forwarding alias for user def get_forward(username): a = requests.get(miab_url + "/mail/aliases?format=json", auth=(miab_admin, miab_passwd)) aliases = a.json() - i=0 - while i < len(aliases): - j=0 - while j < len(aliases[i]['aliases']): - if aliases[i]['aliases'][j]['address'] == username: - forward = aliases[i]['aliases'][j]['forwards_to'][0] - return forward - j+=1 - i+=1 - return None + forward = [alias['forwards_to'][0] for domains in aliases for alias in domains['aliases'] if alias['address'] == username] + return forward[0] # routing