将邮件内容作为POST变量

问题描述 投票:0回答:1

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
投票

您反复出现语法错误;

:0 w
| CONTENT= cat

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

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)

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

© www.soinside.com 2019 - 2024. All rights reserved.