【发布时间】:2011-06-28 21:17:27
【问题描述】:
如何更改可执行二进制文件的真实文件扩展名以通过 gmail smtp 协议发送该文件(全部在 python 中)。
示例:“二进制”到“binary.jpg”
我会试试这个:
导入 gzip、shutil src = open('3c7983cb70e9630cc4ee2fe3e1fb16c2', 'rb') dest = gzip.open('3c7983cb70e9630cc4ee2fe3e1fb16c2.gz.jpg', 'wb') shutil.copyfileobj(src, dest)但是当我尝试通过 gmail smtp 发送它时,会发生这种情况:
smtplib.SMTPDataError: (552, '5.7.0 我们的系统在您的邮件中检测到非法附件。请\n5.7.0 访问 http://mail.google.com/support/bin/answer.py?answer=6590 到\ n5.7.0 查看我们的附件指南。n18sm433437wbh.23')提前致谢。
【问题讨论】:
-
将文件命名为
.jpg.gz而不是.gz.jpg更为传统。我怀疑这会解决你的问题,但它会让事情变得更清楚。此外,gmail可能会检查二进制文件的内容以确定它是否是可执行文件,而不管其扩展名如何。 -
是什么让您认为 gmail 的工程师不够聪明,不能不使用 Windows?在大多数操作系统上,文件扩展名完全无关紧要,依靠它来检测非法附件是愚蠢的。
-
Gzip 压缩 jpeg 会浪费资源并且会增加文件的大小。
标签: python gmail executable smtplib