【问题标题】:Procmail content as POST variableProcmail 内容作为 POST 变量
【发布时间】:2020-01-15 00:05:35
【问题描述】:

Procmail 应该将包含内容的电子邮件发送到我的 api。无论我尝试什么,我都会得到主题等,但我无法进入内容。 $CONTENT 变量由主题填充。

:0
{
 :0 w
  | CONTENT= cat

 :0
 | URL=$(curl -d  "content=$CONTENT" -d "title=Logged Activity" https://myapi.de/fetch.php);

}

【问题讨论】:

    标签: shell procmail


    【解决方案1】:

    您有重复的语法错误;

    :0 w
    | CONTENT= cat
    

    表示在cat 命令执行期间为CONTENT 分配一个空字符串。我猜你的意图是将消息的内容分配给变量。其语法是

    CONTENT=| cat    
    

    (不是食谱,所以这里没有:0 w 有用、必要或正确);但如果你不将此变量用于其他任何事情,则确实不需要单独分配它。

    :0
    | URL=$(curl -d  "content=$(cat)" -d "title=Logged Activity" https://myapi.de/fetch.php);
    

    如上所述,这也可能无法满足您的实际需求。如果您希望在 .procmailrc 中分配变量,请尝试

    URL=|curl -d "content=$(cat)" -d "title=Logged Activity" https://myapi.de/fetch.php;
    

    需要尾随分号(或来自SHELLMETAS 的其他字符)强制Procmail 在shell 中运行子进程(否则它将通过文字字符串content=$(cat) 作为选项-d 的值) .

    更详细地说,食谱

    :0
    | variable=$(cat)
    

    会将 shell 作为子进程运行,并将消息的内容分配为 shell 变量 variable 的值,然后立即退出,这当然会失去该子进程中发生的变量分配的任何影响。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-31
      • 2022-11-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多