如何丢弃来自 Postfix 和 Procmail 的 twoo.com 传入邮件
How to trash twoo.com incoming mail from Postfix and Procmail
这些该死的人订阅了我不想要的他们该死的服务。
我首先尝试按照电子邮件中的 link 退订。
要取消订阅,我必须登录...即使我知道 psw 也不想这样做。
所以我决定在服务器中屏蔽它们
/etc/postfix/body_checks
/^(.*) twoo.com/ DISCARD
/^(.*) twoomail.com/ DISCARD
/etc/postfix/header_checks
/^(.*) twoo.com/ DISCARD
/^(.*) twoomail.com/ DISCARD
那没有用,所以我用这些指令创建了 /home/me/.procmailrc
:0HB:
* ^twoo.com
/dev/null
:0HB:
* ^twoomail.com
/dev/null
/etc/procmailrc 包含使用来自 /home/user/.procmailrc 的过滤器的指令(有效)
无法理解为什么我仍然在 /home/me/Maildir/Inbox
中收到他们的邮件
如评论中所述,您需要确保您的正则表达式与您希望它匹配的文本完全匹配。
Postfix(可选)将 PCRE 用于正则表达式,因此您应该能够在许多在线正则表达式帮助站点之一进行测试; http://regex101.com/ is a popular one, but there are many more. (Here is a demo: https://regex101.com/r/gU7gD7/1)
Procmail 的正则表达式语法有些不同;如果您能找到提供 egrep
(又名 ERE)正则表达式语法的工具,那将非常接近您可以在 Procmail 中使用的工具。
特别是,/(.*) twoo.com/
要求在 twoo.com
之前有一个 space。此外,点需要转义,一旦删除 space,所有 ^(.*)
都是不必要的。当然,当子字符串是可选的时,可以很容易地在单个正则表达式中指定。
/twoo(mail)?\.com/ DISCARD
类似地,^
锚点要求在 Procmail 中的行首进行匹配,这将阻止行中其他任何地方的匹配。只需删除它。
:0HB
* twoo(mail)?\.com
/dev/null
一如既往,写入 /dev/null
时不应使用锁定 -- 为什么要防止两个进程同时丢弃它们的数据?另见 http://www.iki.fi/era/procmail/mini-faq.html#locking
但是,如果您可以使 Postfix 规则生效,那么这应该是不必要的。在 MTA 级别阻止比接受邮件然后删除它要好得多。
这些该死的人订阅了我不想要的他们该死的服务。 我首先尝试按照电子邮件中的 link 退订。 要取消订阅,我必须登录...即使我知道 psw 也不想这样做。
所以我决定在服务器中屏蔽它们
/etc/postfix/body_checks
/^(.*) twoo.com/ DISCARD
/^(.*) twoomail.com/ DISCARD
/etc/postfix/header_checks
/^(.*) twoo.com/ DISCARD
/^(.*) twoomail.com/ DISCARD
那没有用,所以我用这些指令创建了 /home/me/.procmailrc
:0HB:
* ^twoo.com
/dev/null
:0HB:
* ^twoomail.com
/dev/null
/etc/procmailrc 包含使用来自 /home/user/.procmailrc 的过滤器的指令(有效)
无法理解为什么我仍然在 /home/me/Maildir/Inbox
中收到他们的邮件如评论中所述,您需要确保您的正则表达式与您希望它匹配的文本完全匹配。
Postfix(可选)将 PCRE 用于正则表达式,因此您应该能够在许多在线正则表达式帮助站点之一进行测试; http://regex101.com/ is a popular one, but there are many more. (Here is a demo: https://regex101.com/r/gU7gD7/1)
Procmail 的正则表达式语法有些不同;如果您能找到提供 egrep
(又名 ERE)正则表达式语法的工具,那将非常接近您可以在 Procmail 中使用的工具。
特别是,/(.*) twoo.com/
要求在 twoo.com
之前有一个 space。此外,点需要转义,一旦删除 space,所有 ^(.*)
都是不必要的。当然,当子字符串是可选的时,可以很容易地在单个正则表达式中指定。
/twoo(mail)?\.com/ DISCARD
类似地,^
锚点要求在 Procmail 中的行首进行匹配,这将阻止行中其他任何地方的匹配。只需删除它。
:0HB
* twoo(mail)?\.com
/dev/null
一如既往,写入 /dev/null
时不应使用锁定 -- 为什么要防止两个进程同时丢弃它们的数据?另见 http://www.iki.fi/era/procmail/mini-faq.html#locking
但是,如果您可以使 Postfix 规则生效,那么这应该是不必要的。在 MTA 级别阻止比接受邮件然后删除它要好得多。