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