Python CGI 电子邮件动态输出为文本文件附件

1 投票
2 回答
654 浏览
提问于 2025-04-16 09:24

我想用Python发送一封电子邮件,里面有标准的收件人、发件人、正文等等。不过,这里有个问题。我的Python脚本会处理一个字符串,进行一些操作,比如添加、删除、格式化等等。我想把这个处理后的结果作为附件直接发送出去。我知道我可以把结果先保存到一个文本文件里,然后再把这个文件作为附件发送。但是,由于这个CGI脚本的安全限制,我不能在CGI目录下写文件。请问有没有办法动态创建一个文本文件对象,并将其作为附件发送呢?

我使用的是Python的SMTP模块。

因为权限问题,我不能创建一个传统的静态文本文件。我想看看Python能否在执行时创建一个文本文件,然后把数据填进去,再通过SMTP模块把它作为附件发送。

2 个回答

0

你在用smtplib和email.mime.multipart这两个模块吗?MIMEMultipart类的attach()方法是用来添加数据的,而不是用来添加文件的。

1

这个页面上的最后一个例子展示了如何使用 smtplibemail 模块来创建和发送一个包含文本和HTML部分的多部分MIME消息。这个例子应该很容易根据你的需求进行调整,以便发送带有附件的消息(理想情况下,附件的内容类型应该是 message/rfc822)。

撰写回答