Различные результаты при отправке электронной почты с помощью оболочки и через subprocess.call - PullRequest
0 голосов
/ 02 мая 2018

Код оболочки:

msg="body of the mail"

echo "$msg" | mailx -s "ERROR" udhai

Код Python:

msg="body of the mail"

subprocess.call(msg + " | mailx -s 'ERROR:' udhai",shell=True)

Когда я выполняю свой сценарий оболочки, я получаю электронное письмо на учетную запись udhai с и сообщением (тело письма) и темой ("ОШИБКА:").

Но в моем коде на Python я получаю письмо только с темой.

Как я могу получить электронное письмо с темой и сообщением.

1 Ответ

0 голосов
/ 02 мая 2018

Вы можете попробовать заменить ваш вызов процесса на:

subprocess.call("echo '"+ msg + "' | mailx -s 'ERROR:' udhai",shell=True)

в противном случае вы можете изменить его следующим образом:

ps = subprocess.Popen(('echo', msg), stdout=subprocess.PIPE)
output = subprocess.check_output(('mailx', "-s 'ERROR:' udhai"), stdin=ps.stdout)
ps.wait()

см. Команда подпроцесса Python с конвейером

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...