Итак, произошла эта невероятно странная вещь. Я запускаю скрипт python для создания некоторого вывода и сохранения его в файле. В конце скрипта я использую модуль подпроцесса для отправки почты через постфикс. я бегу
subprocess.call(['sudo mail -s "Subject" [email protected] < /path/to/file.txt'], shell=True)
Это выполняется, но выдает сообщение mail: Null message body; hope that's ok
, хотя в файле есть содержимое. И я получаю электронное письмо без тела (но с правильной темой).
Когда я запускаю команду напрямую:
sudo mail -s "Subject" [email protected] < /path/to/file.txt
Я получаю содержимое файла по электронной почте.
Что здесь происходит не так? Это совсем запутало мою голову!
mail
на стандартном вводе была бы несколько безопаснее и, надеюсь, позволила бы вам полностью избежатьsudo
, а также устранить необходимость вshell=True
. - person tripleee   schedule 21.09.2015