gpt4 book ai didi

python - 从 python 通过 sendmail 发送邮件

转载 作者:IT老高 更新时间:2023-10-28 21:36:03 24 4
gpt4 key购买 nike

如果我想不通过 SMTP 发送邮件,而是通过 sendmail,是否有封装此过程的 python 库?

更好的是,有没有一个好的库可以抽象出整个“sendmail - 与 smtp”的选择?

我将在一堆 unix 主机上运行这个脚本,其中只有一些在 localhost:25 上监听;其中一些是嵌入式系统的一部分,无法设置为接受 SMTP。

作为良好实践的一部分,我真的很想让库自己处理 header 注入(inject)漏洞——所以只需将字符串转储到 popen('/usr/bin/sendmail', 'w' ) 比我想要的更接近金属。

如果答案是“去写一个库”,那就这样吧;-)

最佳答案

header 注入(inject)不是影响您如何发送邮件的因素,而是影响您如何构建邮件的因素。查看email打包,用它构造邮件,序列化它,然后使用 subprocess 发送到 /usr/sbin/sendmail模块:

import sys
from email.mime.text import MIMEText
from subprocess import Popen, PIPE


msg = MIMEText("Here is the body of my message")
msg["From"] = "me@example.com"
msg["To"] = "you@example.com"
msg["Subject"] = "This is the subject."
p = Popen(["/usr/sbin/sendmail", "-t", "-oi"], stdin=PIPE)
# Both Python 2.X and 3.X
p.communicate(msg.as_bytes() if sys.version_info >= (3,0) else msg.as_string())

# Python 2.X
p.communicate(msg.as_string())

# Python 3.X
p.communicate(msg.as_bytes())

关于python - 从 python 通过 sendmail 发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73781/

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