Articles of procmail

如何使用getmail,dovecot和catchall / multidrop邮箱处理“未知收件人”?

我的域名的所有邮件都被发送到由我的提供商托pipe的catchall / multidrop邮箱。 我使用getmail来检索邮件并将它们转发给dovecot-lda 。 我希望所有带有未知收件人的邮件都被删除或发送到例如[email protected] 。 到目前为止, getmail简单地将这些消息留在ISP服务器上,因为它们被dovecot拒绝。 有没有办法使用getmail和dovecot (例如使用sieve )? 或者我需要让getmail提供给另一个mda,如procmail或postfix ? 我宁愿不使用postfix/sendmail而是一个更轻量级的select。

formail -I“从”这到底是做什么的?

议题本身问这个问题。 什么 cat emailsource | formail -I "From " 究竟? 它是否只是删除所有重复的Froms? Manpage对我来说有点不清楚。

procmail日志文件的用户

我configuration了exim通过procmail以非常标准的方式向maildirs发送本地邮件:( exim4.conf ) procmail_pipe: driver = pipe command = /usr/bin/procmail -d $local_part return_path_add delivery_date_add envelope_to_add check_string = "From " escape_string = ">From " user = $local_part group = mail 并在/etc/procmailrc MAILDIR=$HOME/ LOGFILE=procmail.log LOCKFILE=procmail.lock DEFAULT=.maildir/ .maildir本身的所有者是正确的 – $user:mail ,但由于某种原因,日志文件是root:mail 。 我怎样才能把它改成$user:mail呢?

procmail:处理旧邮件

我完成了对我的.procmailrc的调整,现在我想处理我收件箱中的所有邮件。 我怎样才能做到这一点?

过滤半请求的垃圾邮件

当传统的UCE(快速致富,放大你的身体部位,尼日利亚大律师)得到充分的处理,我仍然收到很多不是主动提供的垃圾邮件。 这通常来自商业服务转发从我的“朋友”“邀请”,然后“提醒”我的服务。 典型的罪犯是Facebook,Linkedin,Dropbox,Bebox等等。 (当然,这些服务都没有提供任何方式,除了可能通过注册,他们将作为一个邀请,填补你的邮箱更废话) 什么是处理这些问题的好方法? 我当然可以用procmail把他们垃圾邮件给他们,但是如果反弹他们,或者至less发送一个通知发件人(和“朋友”)我对他们的服务或垃圾邮件不感兴趣的回复是个好主意。 任何解决scheme?

procmail dovecot,邮件客户端只有在退出并重新打开时才能看到更改

我在.procmailrc中有一个filter来整理文件夹中的邮件。 但是我使用dovecot作为LDA,在我离开客户端之前它不会更新。 我读到,我需要通过交付进行邮件作为解释在这里: http : //wiki.dovecot.org/procmail 所以在.procmailrc中,我在过滤规则中replace了我的文件夹path:Dir $ Some / $ DestDir / 其中Dir$Some是~/Mail一个目录, $Some是根据某些testing设置的一个variables$DestDir 通过: DELIVER="/usr/lib/dovecot/deliver" | $DELIVER -c deliver.conf -m Dir$Some/$DestDir Where deliver.conf have log, postmaster_address and mail_location = maildir:~/Mail:LAYOUT=fs:INDEX=/var/indexes/%u 我在procmail中看到没有错误或传递日志。 它似乎工作Procmail做,并提供。 但要看到新的邮件,我需要退出客户端(mutt)并再次打开。 我弹回邮件来testing这个,但新的邮件也不工作。

procmail交付给cyrus imap

我使用fetchmail下载邮件并将其发送到本地unix帐户,用户.procmailrc文件以Maildir格式存储邮件,并将其发送给cyrus imap PATH=$HOME/bin:/usr/bin:/bin:/usr/local/bin:. MAILDIR=$HOME/Maildir/ DEFAULT=$HOME/Maildir/ LOGFILE=$MAILDIR/procmail.log # Grab out the Return-Path :0 * ^Return-Path:\/.* { RETURNPATH = "$MATCH" } DELIVER="/usr/lib/cyrus-imapd/deliver" USERINBOX="$DELIVER -a $USER -m $USER.$USER -r $RETURNPATH" :0w | $USERINBOX 在procmail.log我得到这个错误 From root Fri Sep 30 12:09:28 2011 Subject: Welcome to pop mail! Folder: /home/user/Maildir/new/1317380968.8880_0.localhost 4634 /usr/lib/cyrus-imapd/deliver: option requires an argument — 'r' 421-4.3.0 usage: […]

过滤时考虑邮件标题顺序

我的传入邮件服务器正在检查SPF,并相应地在标题中添加一行。 但是,有时以前的服务器添加了类似的标题,所以有多个Received-SPF标题。 Received-SPF: Softfail… Received: from … Received: by … Sender: … Received: by … Received: by … Received: by … Received: by … Received-SPF: pass … Received: by … 我有一个procmailfilter根据其SPF状态对传入的邮件进行分类,但它目前不占用它出现的标题中的位置。 我可以制定规则,考虑到标题中哪一行出现? 还是有其他工具适合这个? 有没有办法区分传入服务器添加的头,第一个(最后添加的)Received头和第二个服务器添加的头。

以虚拟的方式将at-sign字符传递给procmail

http://www.sendmail.org/faq/section3#3.29的常见问题解答提示似乎依赖于以下事实:virtusertable: @domain.com user+%1 将在.procmailrcconfiguration中导致$ 1,例如: ENV_TO=$1 如果收到的电子邮件地址为[email protected],则为“xyz”,[email protected]为“abc”。 (查看procmail日志似乎证实了这一点。) 但是,我希望$ 1的值为“[email protected]”。 这是我可以在同一个用户下处理多个域名的。 以下virtusertable / .procmailrcconfiguration似乎适用于此目的: 的virtusertable: @domain1.com userA+%1\@domain1.com @domain2.com userA+%1\@domain2.com .procmailrc文件: ENV_TO=$1 :0f * ENV_TO ?? . | formail -i "X-Envelope-To: $ENV_TO" :0fE | formail -i "X-Envelope-To: UNKNOWN" :0: * ^X-Envelope-To: xyz\\@domain1.com $HOME/userA/domain1.com/mail/xyz :0: * ^X-Envelope-To: abc\\@domain2.com $HOME/userA/domain2.com/mail/abc 但是,我想避免在X-Envelope-To中出现双反斜杠。 删除虚拟引用中引用的反斜杠似乎失败了,例如: @domain1.com userA+%[email protected] @domain2.com userA+%[email protected] 似乎会导致“过度的recursion错误”。 我的问题是: […]

使用procmail在From:标题中的电子邮件地址执行完全匹配

我发现了很多procmail的例子,以匹配From:标题与wilcards,但我想做一个完全匹配,以防止从:。* [email protected]匹配两个[email protected][email protected] 这是可能的,如果是这样,怎么样?