我在CentOS上运行Dovecot邮件服务器和后缀,它为许多虚拟主机提供服务,现在我已经search了大量的虚拟主机,并且阅读了大量更有用的一些完整的垃圾材料,例如强制所有传入邮件到每个域下的一个邮件用户:
http-post@* //(any existing allowed host)
作为HTTP POST发送到固定的URL而不是发送到邮箱。 但我找不到任何信息是什么将是正确的方式来做到这一点。 我已经尝试从相同邮件域的后缀方面的方法,但没有成功。 现在我正在读Dovecot和Sieve的书,但是看起来好像很多即将到来的阅读,我不知道我是否正确的方向。 对于开发其他端和testing目的,我创build并使用了一个小的sh脚本来嗅探邮件并发送HTTP POST,但现在当一切似乎准备好生产我卡住了。
我怎样才能达到正确的方式?
所以我仍然在寻找正确的方法,但对于那些遇到类似的问题,这里是我的工作肮脏的方法:)
1.将别名添加到/ etc / aliases
#for my coal for all http-post user under any domain http-post: |/etc/postfix/mailworker.sh # or you can make it for specific email [email protected]: |/etc/postfix/mailworker.sh # or forward it to mail and script [email protected]: [email protected],|/etc/postfix/mailworker.sh
2.申请
..]# newaliases ..]# service postfix restart
3.创build文件和tmp文件夹
..]# mkdir /tmp/mailworker ..]# vi /etc/postfix/mailworker.sh
文件内容
#!/bin/bash cd /tmp/mailworker read mailfrom read mailreturnpath # Could read more headers individually cat > data-$$ messageFull=`cat data-$$` messageSafe=$(echo -ne $messageFull | base64); # Here you do anything you want with email # As i mentioned for testing I do something very bad here ;) so don't ever do that on any production environment mysql -h localhost -u myusername -pMyPass1 mydatabase -e "INSERT INTO mytable (id,insdate,mailfrom,mailreturnpath,message) values(NULL,NULL,'$mailfrom','$mailreturnpath','$messageSafe');" rm -f /tmp/mailworker/data-$$
而就是这样!
但我正在寻找的是如何做到这一点干净和安全的方式,因此我有不同的奇怪的想法如何处理电子邮件:)像清理消息,并转发到我的内部聊天使用的networking套接字等。 ..
那么,你是想过滤一个域名下的所有邮件给单个用户,还是只是所有的垃圾邮件?
首先你可以在你的MTA中使用catchall别名。 Postfix将允许你通过用户/域/运输发送邮件到一个脚本,这可能是一个好地方开始 ..
第二个可能会更好地处理你的垃圾邮件的程序,amavisd新有final_spam_destiny ,spamasssasin可以挂钩到fetchmail或.procrc。 筛选是另一种select,虽然在这个过程中相当晚。