自动从邮箱组(别名)删除用户

为了解决当删除邮箱账号时自己从对应邮箱组(别名)里面删除掉,在论坛找到一个解决办法,就是使用触发器;但是使用触发器以后时常有同事反映邮箱组里的账号不存在,经过排查,确认邮件系统没被入侵,日志也没发现其他异常,通过提示不存在的账号检查,怀疑是触发器在匹配替换的时候使用的是模糊匹配,比如邮箱组里有huangjinqiang@test.com,a@test.com, 当删除用户qiang@test.com里, 邮箱组的内容就会变成huangjina@test.com, 确认问题以后, 把触发器删除掉, 改用python脚本实现,脚本路径是/var/www/extsuite/extman/tools/delete_user_from_alias.py,内容如下

#!/usr/bin/env python
#coding: utf8
import re
import sys
import MySQLdb

del_user=sys.argv[1]

#建立和数据库系统的连接
conn = MySQLdb.connect(host='localhost', user='extmail', passwd='extmail', charset='latin1')
#获取操作游标
cursor = conn.cursor()
#执行SQL
cursor.execute("""select address,goto from extmail.alias""")
result = cursor.fetchall();
for line in result:
    #print line[1]
    if re.match(r'%s' % del_user, line[1]):
        strinfo = re.compile('^%s' % del_user)
        goto_new=strinfo.sub('', line[1])
        cursor.execute("""update extmail.alias set goto='%s' where address='%s'""" %(goto_new, line[0]))
    if re.search(r',%s' % del_user, line[1]):
        strinfo = re.compile(',%s' % del_user)
        goto_new=strinfo.sub('', line[1])
        cursor.execute("""update extmail.alias set goto='%s' where address='%s'""" %(goto_new, line[0]))
#关闭连接,释放资源
cursor.close();

注意这个脚本依赖Python的MySQLdb模块
同时修改/var/www/extsuite/extman/libs/Ext/MgrApp/User.pm, 找到delete_user函数,在$self->{redirect} = url2str($q->cgi('url'));的下一行加入system("$dir/tools/delete_user_from_alias.py $user");

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇