我想就我在 /etc/aliases 上运行脚本的问题获得任何建议。首先,这是我的环境/脚本。
- 操作系统:centos 6
- 脚本:python 2.6.6
- 邮件:sendmail-8.14 / dovecot-2x
- python脚本(测试非常简单)
导入系统
f = open("aa.txt", 'w')
for i in range(1, 5): data = "%d \n" % i f.write(data)
f.close() sys.exit()
然后我做了一些配置来使用 smrsh,比如在 /etc/smrsh/ 上建立链接,在 /etc/smrsh/ 上移动脚本...
然后修改 /etc/aliases 如下:
testuser: "|/etc/smrsh/python /etc/smrsh/aa.py"
然后运行newaliases
。
当我向 testuser 用户发送电子邮件时,maillog 显示如下错误:(抱歉更改了一些信息,如 IP、域)
Mar 13 11:14:38 localhost sendmail[8153]: s2DBEcX7008153: from=<ttt@test.com>, size=4448, class=0, nrcpts=1, msgid=<B75C8C1216C9824DBF46410575577E294559AC17@test.com>, proto=ESMTP, daemon=MTA, relay=relay.test.com [xx.xxx.000.xx]
Mar 13 11:14:39 localhost sendmail[8154]: s2DBEcX7008153: to="|/etc/smrsh/python /etc/smrsh/aa.py", ctladdr=<testuser@[xx.xx.xx.xx]> (8/0), delay=00:00:01, xdelay=00:00:01, mailer=prog, pri=34652, dsn=5.3.0, stat=unknown mailer error 1
Mar 13 11:14:39 localhost sendmail[8154]: s2DBEcX7008153: s2DBEdX7008154: DSN: unknown mailer error 1
但是,只是通过 /etc/aliases 转发电子邮件非常有效,就像 testuser :test@zzz.com
我尝试在 shell 上使用 smrsh 运行:
smrsh -c "|/etc/smrsh/python /etc/smrsh/aa.py"
它也很好用。
这是我用于 Mprog 的 sendmail.cf,
Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
T=DNS/RFC822/X-Unix,
A=procmail -t -Y -a $h -d $u
Mprog, P=/usr/sbin/smrsh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL, D=$z:/,
T=X-Unix/X-Unix/X-Unix,
A=smrsh -c $u
并且,/etc/smrsh/
lrwxrwxrwx. 1 root root 17 Mar 13 09:01 procmail -> /usr/bin/procmail
lrwxrwxrwx. 1 root root 15 Mar 13 09:08 python -> /usr/bin/python
lrwxrwxrwx. 1 root root 15 Mar 13 09:42 smrsh -> /usr/sbin/smrsh
lrwxrwxrwx. 1 root root 17 Feb 13 09:17 vacation -> /usr/bin/vacation
-rwxr-xr-x. 1 root root 125 Mar 13 11:27 aa.py
-rw-r--r--. 1 root root 12 Mar 13 11:27 aa.txt
有人可以帮助解决这个问题吗?非常感谢!