根据部门和城市自动创建xxxbj格式的邮件组。

如果提示缺少某个模块,可以用这个命令安装。

python -m pip install bs4  或者 pip install bs4


#!/usr/bin/python
# coding:utf-8

import sys
sys.path.append('/sw/systems/shared/python')
from DB import DB
con,cur = DB().connect()

from Company import Company
company = Company()
users = company.employees
departments = company.departments

#导入ad模块,并获取ad用户
import AD
ad = AD.new()
ad_users = ad.get_users()

user_list = {}
for key in users:
    city = users[key]['location_code'].lower()
    dep = users[key]['department'].lower()
    username = users[key]['username'].strip()

    if dep and city:
        user_list.setdefault(dep,[])
        user_list[dep].append(username)
        user_list.setdefault(dep+city,[])
        user_list[dep+city].append(username)
        user_list.setdefault('base%s' %city,[])
        user_list['base%s' % city].append(username)
        if username not in ['cbremble','nkovalevich','nrich','isugarman']:
            user_list.setdefault('attendance%s' % city,[])
            user_list['attendance%s'% city].append(username)
        
        user_list.setdefault('prod',[])
        user_list.setdefault('prod%s' % city,[])
        user_list['prod%s'% city].append(username)
        user_list['prod'].append(username)

def mail_forward():
    query = """ SELECT  name,forward_name  from mail.forward """ 
    cur.execute(query)
    results = cur.fetchall()
    forwards = {}
    for result in results:
        name = result['name']
        forward_name = result['forward_name'].lower().strip()
        forwards.setdefault(name,[])
        forwards[name].append(forward_name)
    return forwards

forwards = mail_forward()

try:
    for dep in user_list:
        if dep in forwards.keys():
            if dep:
                need_add_alias = set(user_list[dep]) - set(forwards[dep])
        else:
            need_add_alias = user_list[dep]
        if need_add_alias:
            for user in need_add_alias:
                if user not in ad_users:   #如果没用此用户,则不创建
                    pass 
                else:
                    add_forward = """insert into mail.forward(name,forward_name,status) values ('%s','%s','Enabled') """  % (dep,user)
                cur.execute(add_forward)
    con.commit()
except Exception,e:
    print type(e),e