由于“智能”系统pipe理员在我离开两个月的时候做出了一些select,所以我遇到了一个问题:垃圾邮件。 我pipe理的可能接近10,000个网站/邮件网站。 如果用户不存在而不是反弹,他决定允许所有这些域的所有邮件都转到/ dev / null。 在某些情况下,这是可以的,但问题在于它说收件人确定了未知用户,这使得垃圾邮件制造者相信他们正在打一个有效的地址。 所以,所有这一切说,我现在看到吨尝试垃圾邮件进入所有这些网站,我不能找出服务器的服务器的基础上修复。 现在,他们又回到了一个未知的用户,所以networking上的带宽已经下降了一个体面的数量,因为实际的内容没有被交付,但是因为邮件仍然给我,我在DNS查找失去了大量的带宽每条消息以及我的inital bounceback。 似乎并不需要很多,但我们谈论的网站数量相对较大。 我在CentOS 5上使用sendmail。我对这些机器拥有完全的root权限,并且我非常适合使用IPTables,tcpdump,内核修改,sendmail修改,以及我的核心路由器上的访问列表等。 赶上,公司还没有购买全球反垃圾邮件服务。 理想情况下,如果有一种方式,我可以configurationsendmail不做DNS查找,如果邮件发送给一个未知的用户,这将是一个开始。
我正在尝试使用Procmail来过滤通过WHMCS中我的票务信道的邮件。 就pipe道而言,它工作得很好。 但是,网站上的Zopim实时聊天模块的电子邮件在进入WHMCS脚本之前需要过滤和编辑。 他们进来的电子邮件是这样的: To: [email protected] From: Zopim <[email protected]> Subject: Offline Message from Visitor xxxx: xxx From: Visitor xxxxxx <[email protected]> URL: http://www.domain.com xxxxxxx —- Zopim http://www.zopim.com 这里是我的procmail rc文件设置: :0H * ^From: Zopim.*[email protected] | sed -e 's/^From: Zopim.*/From: me@me\.com/' | /usr/bin/php -q /var/www/pipe/pipe.php 现在,工作正常,findFrom字段,并用[email protected]它。 问题是我想以某种方式从电子邮件里面的文字说: From: Visitor xxxxxx <[email protected]> 把上面的标题放在“ From的标题中,实际上它将来自访问者而不是Zopim。 这是我的问题所在,我不知道如何使用sed或其他程序如何将该行设置为variables并将其replace为上面的内容,或者只是使用sed来移动行。
我想检查procmail是否存在一个文件,并取决于这一组DROPPRIVS =是,如果它不是真的留在DROPPRIVS = no 为什么这不起作用? :0 w * `test -f $HOME/mail/.procmailrc` ?? 1 { DROPPRIVS=yes }
我正在反垃圾邮件服务器上运行fetchmail ,以便在用户的垃圾文件夹中获取消息来提供SpamAssassin贝叶斯过滤。 它在fetchmail使用-m选项运行良好,可以将消息传递给SpamAssassin sa-learn工具。 但是我想要开始testingBogofilter并相应地提供Bogofilter数据库。 但要做到这一点, fetchmail应该将消息传递给SpamAssassin和Bogofilter,并且使用-m是不行的。 有一种方法可以通过fetchmail实现这个function吗? 我已经考虑了一些额外的MDA,如procmail或maildrop ,但我不确定是否真的有必要或者是否能够完成这项工作。 编辑:我的实际fetchmail命令从邮件服务器中获取邮件: echo "poll $mailserver proto IMAP user $domain\\$user\\$mailbox pass $passwd ssl" \ | fetchmail -a -n -p IMAP –folder "$junkfolder" -f – -m '/usr/local/bin/sa-learn \ -C /usr/mailcleaner/etc/mailscanner/spam.assassin.prefs.conf –spam' 编辑:我了解它! 回答我自己的问题
如何使用procmail将发件人地址或任何其他标题注入邮件正文? 我已经find了如何注入一个静态string到消息正文,这工作正常: :0bfw | echo "I have inserted this line into the message." ; echo "" ; ca 所以,而不是注入这个静态string的消息,我怎么注入发件人的地址?
尝试基于正则expression式匹配来引导电子邮件。 我知道我可以做到这一点: echo | mail -s test1 me-route2 用这个食谱: * ^To:.*me-route2\@ :0: /home/me/folder-route2/afile 我想要做的是这样的: * ^To:.*me-(route\d)\@ :0: /home/me/folder-$MATCH/afile 但我得到: procmail: Lock failure on "/home/me/folder-/afile.lock"
这里是我的procmail食谱: :0 * ^Subject: [JIRA] (EDRV-*) *$ .JIRA.edrive/new :0 * ^Subject: [SPAM] *$ .SPAM/new :0 * ^X-Spam-Status: Yes .SPAM/new :0 * .* new 我想将邮件中的[JIRA](EDRV-XXX)邮件放入邮箱的JIRA / edrive文件夹和标有[SPAM]的邮件中 – 放入SPAM文件夹中。 但是我现在得到的是: procmail: [8652] Sat Aug 27 19:08:19 2016 procmail: Assigning "SHELL=/bin/bash" procmail: No match on "^Subject: [JIRA] (EDRV-*) *$" procmail: No match on "^Subject: [SPAM] *$" procmail: […]
我为每个提供电子邮件联系的公司使用别名。 所以,例如在/etc/aliases somecompany: myuser 我提供给SomeCompany的地址是[email protected] 如果发件人的域不是来自somecompany.com ,那么我可以认为它是垃圾邮件。 sendmail(或其他方法)是否可以自动检查域名是否与别名匹配,否则拒绝邮件? 从@MERM的答案,其中build议使用procmail ,我们可以创build一个这样的规则: :0: * ^TOsomecompany * !^FROM.*somecompany.com /dev/null 这是一个好的开始,但是抑制交付并不像服务器拒绝那样有效。 是否有可能要求sendmail拒绝邮件,而不是简单地转发到/dev/null ?
我的邮件服务器设置工作多年。 最近我开始遇到以下问题: 邮件设置:sendmail + dovecot + procmail 主机文件服务器:CentOS 6.8,NFS将邮件目录导出到… 邮件服务器:CentOS 7.3,通过libvirtd / qemu在主机上作为访客虚拟机运行,NFS从主机挂载/ var / spool / mail。 症状:dovecot和procmail都发出错误(详情如下),似乎表明他们没有权限写入/ var / spool / mail。 但是,在NFS文件服务器和邮件NFS客户端上,/ var / spool / mail具有我知道如何给出的最一般权限。 在邮件服务器(NFS客户端)上: $ ls -lhd /var/spool/mail drwxrwxrwt 5 root mail 6.8M Mar 29 12:37 /var/spool/mail 在邮件服务器中:/ etc / fstab: filehost:/mail/inbox /var/spool/mail nfs defaults 0 0 在NFS主机上: […]
如何configurationProcmail和SpamAssassin来捕获垃圾邮件?