Код оболочки:
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 с оба сообщением (телом письма) и темой («ERROR:»).
Но в моем коде Python я получаю электронное письмо Только с темой.
Как я могу получить электронное письмо с темой и сообщением.
Спасибо. оно работает. Еще раз спасибо
Он работает в режиме интерпретатора Python. Но при выполнении моего скрипта python я получаю ошибку ниже. / bin / sh: -c: line 0: неожиданный EOF при поиске соответствия / bin / sh: -c: line 1: синтаксическая ошибка: неожиданный конец файла Позвольте мне проверить наличие любой синтаксической ошибки, и я получу назад к вам
хммм странно! Да, дайте мне знать, если вы все еще застряли, нормально, это должно сработать.
Совет новичкам: если ответ решает вашу проблему, примите его, щелкнув большую галочку (✓) рядом с ним, и, при желании, проголосуйте за него (для голосования требуется не менее 15 очков репутации). Если вы нашли другие ответы полезными, проголосуйте за них. Принятие и голосование помогают будущим читателям. См. [Соответствующую статью Справочного центра] [1] [1]: stackoverflow.com/help/someone-answers
Это сработало. Я допустил синтаксическую ошибку. Простите за это . Спасибо за вашу помощь и советы. Я буду следить за этим
Вы можете попробовать заменить вызов процесса следующим образом:
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()
вы можете попробовать:
subprocess.call("echo '"+ msg + "' | mailx -s 'ERROR:' udhai",shell=True)
и сообщить мне, работает ли он? Если нет, посмотрите на использование конвейера в python: stackoverflow.com/questions/13332268/…