python MIME:如何更改附件的名称?

Posted

技术标签:

【中文标题】python MIME:如何更改附件的名称?【英文标题】:python MIME: how do i change the name of the attachment? 【发布时间】:2016-02-20 16:22:04 【问题描述】:

我可以使用 smtplib 函数发送电子邮件,但我的文件名总是包含文件的路径:

attachment.add_header("Content-disposition", "attachment", filename=fileToSend)
msg.attach(attachment)

在这种情况下 fileToSend = "/home/pi/email/RPSL-0002_2015_11_17__00_00_00.csv"

我收到的文件是 主页邮件RPSL-0002_2015_11_17__00_00_00.csv

我已经尝试替换 fileToSend[11:] 和一个与之相等的变量,但文件路径总是在电子邮件文件中出现(没有斜杠)。

如何指定附件的文件名?

【问题讨论】:

smtplib 关注的是消息传输,而不是内容。我已经相应地更新了您的问题。 @tripleee:谢谢。 (我认为你的意思是python“MIME”,而不是“MilME”...... 【参考方案1】:

您对email.message.Message.add _header 的使用基本上是正确的,只是您不能传入目录名称 - 如果您可以控制收件人站点的目录结构,那将是一个安全问题(以及在许多场景),所以它根本不受支持。

如果变量fileToSend 中的值是用户提供的可能包含路径的字符串,请使用filename=os.path.basename(fileToSend) 之类的内容(请参阅documentation)。

【讨论】:

以上是关于python MIME:如何更改附件的名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 msg 中的附件附加到 Mime 以在 Python 中作为电子邮件发送?

包含扩展字符的 MIME 附件名称失败

python MIME将多个附件附加到多部分消息

python 2.7 smtplib 和 mime 的电子邮件附件问题

用Python实现带附件发送邮件的功能

用Python实现带附件发送邮件的功能