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

python MIME: how do i change the name of the attachment?

我可以使用 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"

我收到的文件是 homepiemailRPSL-0002_2015_11_17__00_00_00.csv

我已经尝试用 fileToSend[11:] 和一个等于它的变量代替,但是文件路径总是出现在电子邮件文件中(没有斜线)。

如何指定附件的文件名?

你对 email.message.Message.add _header 的使用基本上是正确的,除了你不能传入目录名 - 如果你可以控制收件人站点的目录结构,那将是一个安全问题(以及在许多情况下存在大量可用性问题),因此根本不支持。

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