让我们假设一个典型的设置,从sendmail调用procmail来过滤收到的电子邮件到正确的邮箱。 这样做,而传入的SMTP连接到sendmail仍然是活动的,或者是在电子邮件已被接受后完成? 如果前者然后我明白可能procmail返回给sendmail一个错误,以便sendmail答复错误代码,例如554 Transaction failed而接受SMTP数据 ,而不是通常的200? 在我的情况下,sendmail从别名数据库调用procmail,像这样的条目: theaddres: theaddres-somedomain-com.virtual theaddres-somedomain-com.virtual: |"/usr/libexec/sm.bin/someuser.virtual somedomain@theaddress" 然后执行procmail脚本: root@mda:/etc/mail # less /usr/libexec/sm.bin/someuser.virtual /usr/local/bin/procmail -a $1 /usr/local/etc/procmailrc/someuser.virtual 编辑: 添加更详细的解释。 首先,我想确定下面列出的基于维基百科例子的stream程是否可以在SMTP协议中使用。 如果是的话,那么如果这是可能的与procmail。 然后,如果没有(我猜是这样的话),如果存在一个实现(例如milter),在这个实现中是可能的。 S: 220 smtp.example.com ESMTP Postfix C: HELO relay.example.org S: 250 Hello relay.example.org, I am glad to meet you C: MAIL FROM:<[email protected]> S: 250 Ok C: RCPT TO:<[email protected]> S: 250 […]
我们收到很多发送给(随机)不存在的用户的垃圾邮件。 这导致后缀生成“未知用户”反弹给假发件人。 作为一种解决方法,我使用全面的方式将任何邮件redirect到我自己,并在local_part中手动转发邮件。 我希望postfix将垃圾邮件放置到不存在的用户,并且只有当他们的垃圾邮件分数低于阈值时才反弹。 这样,试图向不存在的用户发送火腿的人将得到通知,并且将会有较less的后向散射。 这里是日志文件 Sep 11 07:03:31 srv postfix/smtpd[27382]: connect from mailin.example.com[10.13.185.194] Sep 11 07:03:31 srv postfix/smtpd[27382]: 563393847D: client=mailin.example.com[10.13.185.194] Sep 11 07:03:31 srv postfix/cleanup[27386]: 563393847D: message-id=<[email protected]> Sep 11 07:03:31 srv postfix/qmgr[1771]: 563393847D: from=<[email protected]>, size=5341, nrcpt=1 (queue active) Sep 11 07:03:31 srv postfix/smtpd[27382]: disconnect from mailin.example.com[10.13.185.194] Sep 11 07:03:33 srv postfix/pickup[26067]: C53A53851C: uid=115 from=<[email protected]> […]
目前我有一个正在运行的Postfix服务器,通过procmail传递传入的邮件。 这工作正常,但现在我想解密任何传入的邮件,这是用pgp自动encryption。 所以我创build了一个procmail规则来触发gnupg。 这是我目前的.procmailrc: :0 fw * ^Subject: encryptme | /usr/bin/gpg –decrypt | mail -s "ENCRYPTED: $subject" [email protected] 现在邮件成功解密并发送到[email protected],但邮件主题为空(邮件只显示“ENCRYPTED:”),服务器的电子邮件地址为发件人。 当然,解密后的邮件包含电子邮件标题的一部分。 Content-Type: multipart/mixed; boundary="713bkotRlnRGA7FAhJANoI0IsDpX3ws8N" –713bkotRlnRGA7FAhJANoI0IsDpX3ws8N Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Just a test. –713bkotRlnRGA7FAhJANoI0IsDpX3ws8N– 有没有可能自动解密传入的邮件,并“干净”(只是解密的消息)没有像GNU Anubis的额外软件? procmail触发程序的一个很好的规则(涉及主题)? 我希望这些信息足以帮助别人。
编辑 让我们忽略一下我写下的所有内容,然后重新提出问题:如果您有自己的域名,并且想要将该域名的电子邮件发送到Gmail收件箱(而不是Google Apps),那么您将如何执行此操作? 最好只使用SMTP,而不使用POP3。 原文问题: 我有几个虚荣的域名,其中之一是amedee.be 。 我使用Postfix在Amazon AWS主机上运行Debian服务器。 我也安装了SpamAssassin,我已经确认它会照顾最明显的垃圾邮件。 我正在使用Procmail将邮件转发到Gmail。 我使用的是Google所描述的最佳做法: https : //support.google.com/a/answer/175365?hl = zh_CN 大多数电子邮件到达都很好,这与ServerFaultbuild议的“类似问题”不同,它只是全部或全部。 但更多的时候比我想(约20),我得到这在/var/log/mail.log : Nov 30 15:01:39 ip-172-31-51-67 postfix/smtp[29724]: 4B72563149: to=<[email protected]>, relay=gmail-smtp-in.l.google.com[74.125.22.26]:25, delay=2657, delays=2657/0.2/0.07/0.18, dsn=5.7.1, status=bounced (host gmail-smtp-in.l.google.com[74.125.22.26] said: 550-5.7.1 [52.0.177.1037] Our system has detected that this message is 550-5.7.1 likely unsolicited mail. To reduce the amount of spam […]
我有一个脚本生成的电子邮件,每小时进来。 除了在某些条件下,我不需要看到它,所以我只是想过滤到自己的邮箱。 该消息来自cron,我想小心不要过滤掉其他cron消息,只有这个基于源和内容。 正文行(消息的第一行以它开头)我试图匹配的是: /etc/cron.hourly/scriptrun: 这是我想出来的是不工作。 我不知道我错了哪里。 :0 HB * ^From:.*[email protected] * ^Subject: {Cron * \/etc\/cron.hourly\/scriptrun .Save/ 任何想法将不胜感激。
我在/ etc / procmailrc中有这样的代码: DROPPRIVS=yes DEFAULT=$HOME/Maildir/ :0 * ? /usr/bin/test -d $DEFAULT || /bin/mkdir $DEFAULT { } :0 E { # Bail out if directory could not be created EXITCODE=127 HOST=bail.out } MAILDIR=$HOME/Maildir/ 但是,当目录已经存在,有时它会发送一个返回邮件,这个错误: 554 5.3.0 unknown mailer error 127 。 电子邮件仍然交付,请注意,但它也会向发送用户发回一个错误代码。 我暂时通过注释掉EXITCODE和HOST来解决这个EXITCODE ,但是我想知道是否有更好的解决scheme。 我在networking上的多个地方find了这个代码块,但是却找不到为什么这个错误会回到我身上。 这似乎发生在我发送电子邮件给本地用户时。 有时用户有一个.forward文件发送给其他用户,有时不是,但结果是一样的。 我也尝试删除DROPPRIVS ,以防万一它搞乱转发,但似乎没有影响它。 该行是以* ? /usr/bin/test开头的* ? /usr/bin/test * […]
我试图search和find类似的主题,但我找不到任何解决我的问题。 基本上,我帮助pipe理学生组的服务器,大多数用户通过.procmailrc将他们的邮件转发到其他地址。 这一切都很好,但有时出于任何原因,他们转发邮件服务器拒绝邮件。 有时候会发生这种情况,因为他们的校园邮件帐户已过期,或者有时他们的networking邮件帐户消失或已满。 无论什么原因,当发生这种情况时,转发的服务器会将反弹发送回我们的服务器,这就是乐趣开始的地方。 反弹被发回到他们在我们的服务器的地址,后缀决定将这个反弹转发到转发地址。 这很快创build了一个循环,填充后缀队列/邮件分区并杀死我们的邮件服务器。 我们正在使用Debian Lenny和Postfix,一切都是最新的。 我们可以做些什么来避免这种情况? 这似乎是我们做错了错误的事情,因为我希望这个反弹会回到原来的发件人,而不是我们。 谢谢你的帮助! 编辑:为了清楚起见,服务器由于无限的反弹通知链而被超载,而不是一个反复弹跳的消息。
目前我的procmail食谱如下: FROM_=`formail -c -x"From "| awk '{ print $1 }'` SUBJ_=`formail -c -x"Subject:" | sed -e 's/^[ ]*//g' -e 's/[ ]*$//g'` :0 *^Subject:.*(60) { :0 fwh | formail | (echo "$FROM_"; echo "$SUBJ_";) :0 fwb | formail -I "" :0 myemail/ } 我的procmail配方只会筛选出主题中编号为“60”的电子邮件。 之后,formail将执行取出发件人的电子邮件地址及其主题,然后将其内容转发到“myemail”目录。 有人可以帮助我构build一个procmail配方,以过滤收到的邮件到不同的目录,如果有多个“60”的科目逗号分隔? (例如,主题为6010,6011,6012的电子邮件,6010将进入6010文件夹,6011将进入6011等等。) 主题中的数字是电话号码,可以有大量的不同的,所以列举所有可能的比赛是不是一个真正的select。
有关如何使/usr/local/bin/procmail与交付给maildir一起工作的文档。 不过,我的理解是,也可以完全避免使用procmail ,直接使用sendmail的local_procmail调用/usr/local/libexec/dovecot/deliver / dovecot-lda ,而不是先调用procmail 。 在这种情况下, dovecot-lda如何知道是否需要交付给mbox或maildir? http://wiki2.dovecot.org/LDA/Sendmail FEATURE(`local_procmail', `/usr/local/libexec/dovecot/dovecot-lda',`/usr/local/libexec/dovecot/dovecot-lda -d $u') MODIFY_MAILER_FLAGS(`LOCAL', `-f') MAILER(procmail)
我们与各种客户和供应商交换电子邮件。 我试图实现一个解决scheme,我们的代表和客户或供应商之间的所有电子邮件通信都保存在我们的数据库中,所以在我们的pipe理系统中,我们有一个通信logging。 我曾经见过一些像Guru.com或者elance.com这样的项目网站。 您可以通过电子邮件来回传递,但系统会logging对话。 我一直在寻找几天,试图找出如何实现这一点。 在学习Guru.com的电子邮件时,我看到他们都去了一个普通的电子邮件地址。 该主题包含一个encryption的ID和“发件人:(自由职业者的名字或项目所有者的名字)”因此,似乎有一个盒子里的parsing器,该电子邮件的正文,保存到数据库,并转发电子邮件收件人(来自主题行)。 我用我的电子邮件供应商,但运行我自己的Web服务器(EC2,AWS Linux),所以我想我可以创build第二个MXlogging说“mail2”,并将其用于此应用程序。 然后我可以使用像“[email protected]”,并让我的服务器处理这些电子邮件。 我想这可以用sendmail milter完成,但是我不确定。 我在这方面寻求帮助或指导还没有发现任何东西。 我可能不知道正确的术语来search。 我已经读了很多milters,但似乎没有解决这个问题。 任何人都可以提供任何帮助或指向正确的方向吗? 谢谢 托姆