В exim4 я использую следующий канал для отправки сообщения скрипту python, его обработки и загрузки в django:
send_to_django_mailbox:
driver = pipe
command = /usr/local/bin/python /etc/exim4/conf.d/transport/send_mail.py $message_body $message_headers_raw
return_path_add
delivery_date_add
вместо того, чтобы пройти $message_body
и $message_headers_raw
Я хотел бы передать очень сырое сообщение без какой-либо замены. Как я могу этого добиться? Я не могу найти переменную message_raw
или похожие.
Exim может передать сообщение другому процессу, и из этого процесса сообщение доступно через /dev/stdin
файл. Например, из оболочки мы можем читать сообщение построчно так:
#!/bin/sh
while read line
do
echo (( $line ))
done < /dev/stdin
#####
Хорошо, глупый я, мне следовало внимательнее прочитать документацию:
Простое сообщение отправляется в сценарий через стандартный ввод, мне не нужно передавать его через параметры командной строки.
в питоне это было бы как
import sys
for line in sys.stdin:
the_file.write(line)