gpt4 book ai didi

python - mailutils 无法通过 python 中的 subprocess.run 工作

转载 作者:行者123 更新时间:2023-12-01 06:37:35 24 4
gpt4 key购买 nike

我正在尝试通过 python 的 subprocess.run 方法发送邮件。不幸的是,它不起作用。

import subprocess

message = "Hello World"

process = subprocess.run(["mail", "-s", "Test, "xyz@xyz.com", "<<<", message],
stdout=subprocess.PIPE,
universal_newlines=True)

print (process.stdout)

我收到以下错误:

邮件:无法解析地址<<<' (while expanding <<<'):电子邮件地址格式错误

邮件:无法解析地址Hello World' (while expanding Hello World'):电子邮件地址格式错误

该命令在 shell 中运行(Linux Mint > 19.0)。

最佳答案

<<<语法是 bash 的一个特性。如果您想使用它,您需要将命令作为 bash shell 的参数运行:

import subprocess
message = "Hello World"

command = "mail -s Test abc@def.com <<< "+message
process = subprocess.run(
["bash","-c",command],
stdout=subprocess.PIPE,
universal_newlines=True)

print (process.stdout)

但是,对动态内容使用 shell 扩展可能会产生安全问题。更好的方法是使用 subprocess.run 的输入功能(仅限 python3)

import subprocess
message = "Hello World"

command = ["mail", "-s", "Test", "abc@def.com"]
process = subprocess.run(
command,
input=message,
stdout=subprocess.PIPE,
universal_newlines=True)


print (process.stdout)

另请参阅Python - How do I pass a string into subprocess.Popen (using the stdin argument)?

关于python - mailutils 无法通过 python 中的 subprocess.run 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59598757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com