Python: отправка исполняемого двоичного файла через SMTP в Gmail - PullRequest
1 голос
/ 29 июня 2011

как я могу изменить реальное расширение файла исполняемого двоичного файла, чтобы отправить этот файл по протоколу SMTP Gmail (все в Python).

Пример: от «двоичного» до «двоичного.jpg»

Я попробую это:

import 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 Our system detected an illegal attachment on your message. Please\n5.7.0 visit http://mail.google.com/support/bin/answer.py?answer=6590 to\n5.7.0 review our attachment guidelines. n18sm433437wbh.23')

Спасибо заранее.

1 Ответ

4 голосов
/ 29 июня 2011

Согласно политике Google, бинарные файлы запрещены.

Gmail won't accept these types of files even if they are sent in a zipped
(.zip, .tar, .tgz, .taz, .z, .gz) format. If this type of message is sent to 
your Gmail address, it is bounced back to the sender automatically. 

Таким образом, Google распаковывает ваш файл и, скорее всего, проверяет заголовки файлов, чтобы определить тип файла (не полагаясь на предоставленное расширение.вокруг этого вы можете попробовать загрузить его в виде ZIP-файла, защищенного паролем, так как Google не сможет взломать его, чтобы отсканировать содержимое, если они позволят это. Другой вариант - зашифровать файл перед отправкой, возможно, дажеочень простое шифрование XOR может быть достаточным для того, чтобы пройти фильтрацию. Затем вам потребуется расшифровать при получении файла.

...