procmail - procmail - 使用 {} 不会传送到 mbox
问题描述
我正在尝试使用 procmail 将一些旧电子邮件整理到我的雷鸟 mbox 文件中,但是在使用大括号时我似乎无法将其归档到 mbox 文件中。使用和不使用大括号进行下面的简单测试会提供不同的结果 - 我错过了什么,请:
SHELL=/bin/sh
# --- OPTIONAL, USED FOR DEBUGGING (comment out)
VERBOSE=yes
LOGABSTRACT=all
LOGFILE="procmail.log"
MAILDIR=/home/jake/windows/Thunderbird/Mail/Local\ Folders
DEFAULT=/home/jake/done/
# goes into MAILDIR/processed
:0
processed
# goes into DEFAULT/msg.gAmAAAAA4F/etc.
:0
{
processed
}
解决方案
您的第二个配方基本上是一个语法错误,尽管 Procmal 解析器实际上将它解析为一个表达式,但它的含义与您的预期完全不同。这是你实际写的,完整的。
:0
{
processed=''
}
因此,Procmail 进入大括号,执行分配,退出大括号,并传递到$DEFAULT
当它落到配方文件的末尾时。
要实际交付到文件中,您需要一个完整的配方,例如
:0
{
:0
processed
}
...但显然带有大括号的外部配方在这里完全是多余的。
一个符号本身被解析为一个空变量赋值,它清除了由该符号命名的变量这一事实不明显并且不仅对初学者来说非常混乱,所以不要因为你无法弄清楚这一点而感到特别糟糕。
实际上,VERBOSE=yes
您应该会发现日志文件准确地向您显示了这一系列事件。你的日志文件最终会出现在你的MAILDIR
所以也许你没有找到它......?
推荐阅读
- sql-server - 对于长时间运行的存储过程,游标执行命令过早退出而没有错误?
- python - numpy中的按列逻辑运算
- javascript - 如何对多个对象使用“addEventListener”
- c# - Linux 上的 Unity 鼠标输入无法与编辑器中的新输入系统一起使用
- python-3.x - python queue.Queue put() 负超时不会引发 ValueError
- javascript - 为什么 include() 在 js 中会这样?
- sql - MS-Access 中按帐户计算当前和累计金额的聚合查询异常缓慢
- python - 找到高于阈值的峰值
- html - 单选按钮在检查时冻结/禁用
- javascript - 根据数组元素的值对数组元素进行排序