Procmail контент как переменная POST - PullRequest
0 голосов
/ 15 января 2020

Procmail должен отправлять мои электронные письма с контентом на мой API. Независимо от того, что я пытаюсь, я получаю предмет и т.д. c., Но я не могу добраться до содержания. Переменная $ CONTENT заполняется темой.

:0
{
 :0 w
  | CONTENT= cat

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

}

1 Ответ

0 голосов
/ 15 января 2020

У вас повторяющаяся синтаксическая ошибка;

: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 запускал подпроцесс в оболочке ( в противном случае он будет проходить через буквальную строку content=$(cat) в качестве значения параметра -d).

Более подробно, рецепт

:0
| variable=$(cat)

будет запускать оболочку как подпроцесс, и присвойте содержимое сообщения в качестве значения переменной оболочки variable, но затем немедленно завершите работу, что, конечно, утратит любые эффекты назначения переменных, которые произошли в этом подпроцессе.

...