python - 使用 shell 和通过 subprocess.call 发送电子邮件时的不同结果
问题描述
外壳代码:
msg="body of the mail"
echo "$msg" | mailx -s "ERROR" udhai
蟒蛇代码:
msg="body of the mail"
subprocess.call(msg + " | mailx -s 'ERROR:' udhai",shell=True)
当我执行我的 shell 脚本时,我收到了 udhai 帐户的电子邮件,其中包含消息(邮件正文)和主题(“错误:”)。
但在我的 python 代码中,我只收到带有主题的电子邮件。
我怎样才能收到带有主题和消息的电子邮件。
解决方案
您可以尝试通过以下方式替换您的流程调用:
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 - 信号处理:一般音频“节拍”检测
- reactjs - 如何修复绑定元素'children'隐式具有'any' type.ts(7031)?
- ruby - 如何通过组合具有不同值的键来合并具有相同 ID 的两个哈希
- shell - 我正在尝试在鱼壳上运行 init 0 但出现奇怪的错误
- javascript - 将 asp.net mvc 模型传递给 Javascript 函数
- xcode - Xcode Apple Clang 启用 avx512
- python - 使用 python 搜索特定的重复
- javascript - 如何在 vuejs 中显示没有路由器视图父视图的子视图?
- angularjs - fullpage.js 无法阻止被动事件侦听器中的默认值
- swift - 在 Swift 中用引号替换字符串部分