Назад | Перейти на главную страницу

передать необработанное сообщение электронной почты в скрипт Python

В 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)