在 fetchmail 的 mda 选项中对文字百分比进行编码

在 fetchmail 的 mda 选项中对文字百分比进行编码

我想下载电子邮件而不进行任何处理,无需 procmail。我正在尝试像这样配置 fetchmail:

mda "/bin/sh -c 'cat > INBOX/new/$(date +%s_%N)'"

但它产生了一个名为“yuchao_326621000”的文件,而不是预期的“1428556930_751589889”。我认为这是因为 fetchmail 会将“%s”替换为当前用户名。

那么,如何在“mda”选项中编码“%”?

我尝试过的:

mda "/bin/sh -c 'cat > INBOX/new/$(date +%%s_%N)'"

mda "/bin/sh -c 'cat > INBOX/new/$(date +\%s_\%N)'"

以上两种方法均无效。

答案1

阅读 fetchmail 的源代码(sink.c,第 1183 行左右)后,我无法找到编码“%”的方法。

因此,唯一的解决方法是避免使用“%s”,并且使用 bash 的单引号语法很容易:

mda "/bin/sh -c 'cat > INBOX/new/$(date +%''s_%N)'"

相关内容