【发布时间】:2019-07-04 12:03:38
【问题描述】:
我有一个隔离文件夹,我必须定期下载并按收件人收件箱拆分,或者更好地将每封邮件拆分到一个文本文件中。我有每天 10.000 封邮件,我正在用 fetchmail 和 procmail 编写一些东西。问题是我不知道如何在 procmail 中逐条拆分消息;它们最终都在同一个收件箱中。
我尝试通过如下配方传递脚本中的每条消息:
:0
| script_processing_messages.sh
其中包含
read varname
echo "$varname" > test_file
要尝试查看是否可以在 $varname 变量中获取一条消息但不行,我每次只获取一行消息。
我现在用
fetchmail --keep
.fetchmailrc 在哪里
poll mail.mymta.my protocol pop3 username "my@inbox.com" password "****" mda "procmail /root/.procmailrc"
而 .procmailrc 是
VERBOSE=0
DEFAULT=/root/inbox.quarantine
我想为每条消息获取一个文件,所以:
1.txt
2.txt
3.txt
[...]
10000.txt
我有很多收件人和很多域,所以我不能说编写 5000 条规则来匹配每个收件人。要是有什么办法就好了
^To: $USER
重定向到
/$USER.inbox
这样 procmail 自己负责阅读和动态创建这些收件箱
我不是 fetchmail 和 procmail 食谱方面的专家,我正在努力但我不会走得太远。
【问题讨论】:
-
我已经这样做了,但我没有找到任何可以帮助我的东西。我的意思是,管道规则中可能有一些东西,但我无法像我在问题中显示的那样得到它
-
查看“将消息直接发送到默认位置。” 页面将
* ^From: spammer@domain.com指向/dev/null的部分。如果我理解,您需要使用^To:字段将消息定向到用户文件夹。这应该使您进入参考的正确部分。我使用 procmail 将用户过滤到文件夹中,但对于您的问题没有解决方案。 -
是的,我应该更准确地描述我的问题。我有很多收件人和很多域,所以我不能说编写 5000 条规则来匹配每个收件人。如果有某种
^To: $USER重定向到/$USER.inbox那就太好了,这样procmail 本身就会负责阅读和动态创建这些收件箱……而这就是我找不到答案的地方 -
不太清楚你在问什么。是否要将单个 Berkeley mbox 文件拆分为消息并通过 Procmail 传递每个消息?这是
formail -s procmail <mboxfile,在 Procmail 文档中有非常清楚的解释。
标签: bash email split procmail fetchmail