2011-06-28 18 views
0

実行可能バイナリの実際のファイル拡張子を変更して、そのファイルをgmail smtpプロトコル(すべてpythonで)に送信する方法を教えてください。Python:smtp経由で実行可能バイナリファイルをGmailに送信

例:

 
import gzip, shutil 
src = open('3c7983cb70e9630cc4ee2fe3e1fb16c2', 'rb') 
dest = gzip.open('3c7983cb70e9630cc4ee2fe3e1fb16c2.gz.jpg', 'wb') 
shutil.copyfileobj(src, dest) 

を私はGmailのSMTP経由で送信しようとすると、これに起こる: "binary.jpg" を "バイナリ"

私はこれを試してみましょう

 
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') 

Thancks in advance。

+1

「.gz.jpg」ではなく「.jpg.gz」という名前を付ける方が伝統的ですが、問題が解決するとは思えませんが、それはもっと明確になります。 、おそらく 'gmail'バイナリファイルの内容を検査して、その拡張子に関係なく実行可能ファイルかどうかを判断します。 – GWW

+0

これは動作しません – x13

+0

gmailのエンジニアはWindowsを使用しないほどスマートではないと思いますか?ほとんどのOSでは、ファイル拡張子は完全に無関係であり、違法な添付ファイルを検出するためにそれに頼るのは馬鹿馬鹿しいでしょう。 – geoffspear

答えて

3

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暗号化でもフィルタリングを通過することができます。

+0

Base64へのファイルエンコードはどうですか? – x13

+0

https://support.google.com/a/answer/6590?hl=ja zipファイルを含むパスワードで保護されたzipファイルを送信することはできません。可能であれば、すべてのファイルの圧縮を解除するか、パスワード保護を解除してください。 他のzipファイルも含まれているzipファイルを送信すると、ファイルが破損する可能性が高くなります。最初にすべてのファイルの圧縮を解除し、1つのzipファイルのみを作成することをお勧めします。 – theAlse

関連する問題