Получение пустого тела каждый раз при отправке по электронной почте Линукса с subprocess.call в питоне

голоса
0

Я пишу питон скрипт , который будет отправлять по электронной почте , когда исключение. Я получаю электронную почту, однако, тело пусто каждый раз - я получаю Null message body; hope that's okсообщение , когда подпроцесс называется.

Вот мой код:

subject = This is the subject
f = open('body.txt', w+)
body = Email body goes here.
f.write(body)
subprocess.call(['mail', '-s', subject, 'addr@example.com'],stdin=f)
f.close()

Почему я получаю пустое тело каждый раз? Я не думаю , что я понять , как STDIN в subprocessточно работает.

Задан 07/11/2018 в 20:11
источник пользователем
На других языках...                            


1 ответов

голоса
1

Вам необходимо закрыть f перед тем вызовом subprocess.call(). В противном случае, fне будет очищена от времени mailчитает его, и не будет никакой гарантии , что все на самом деле было записано в файл.

Ответил 07/11/2018 в 20:58
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more