ある日、業務上のやり取りで、いくつかの情報をまとめたファイルをメールで送ることにしました。
ファイルはZIPで圧縮し、念のため、ZIPにはパスワードも設定しました。
送信自体は問題なく終わった、と思いましたが、数分後、エラーメールが返ってきました。
ちなみに、最近はZIPではなくGoogleドライブなどのクラウドストレージで共有する方が、セキュリティのアクセス管理はしやすいと思います1。
ただ、送信相手によっては、共有リンクだと「うまく開けなかった」と言われてしまうことがあり、旧来の添付ファイルを使うケースも残っているんですよね。
1. 返ってきたエラー内容を確認する
エラーメールには、英語で「セキュリティ上の問題がある可能性があるためブロックされた」という趣旨が書かれています。
エラーコードは 552-5.7.0 でした2。
This is the mail system at host mailXXX.example.jp.
I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.
For further assistance, please send mail to postmaster.
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The mail system
<recipient@example.com>: host gmail-smtp-in.l.google.com[xxx.xxx.x.xx] said:
552-5.7.0 This message was blocked because its content presents a potential
552-5.7.0 security issue. To review our message content and attachment
content 552-5.7.0 guidelines, go to 552 5.7.0
https://support.google.com/mail/?p=BlockedMessage
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - gsmtp
(in reply to end of DATA command)
Reporting-MTA: dns; mailXXX.example.jp
X-Postfix-Queue-ID: XXXXXXXXXXXX
X-Postfix-Sender: rfc822; sender+tag@example.com
Final-Recipient: rfc822; recipient@example.com
Action: failed
Status: 5.7.0
Remote-MTA: dns; gmail-smtp-in.l.google.com
Diagnostic-Code: smtp; 552-5.7.0 This message was blocked because its content
presents a potential 552-5.7.0 security issue. To review our message
content and attachment content 552-5.7.0 guidelines, go to 552 5.7.0
https://support.google.com/mail/?p=BlockedMessage
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - gsmtp
Code language: PHP (php)
ここでまず確認したかったのは、どこで失敗したのか、という点です。
メールの配送経路を読むと、送信元のサーバーではなく、Gmail 側で受信を拒否していることが分かりました。
つまり、Gmail の判断で止められています。
2. パスワード付きZIPは「中身を検査できない」
552-5.7.0 は、添付ファイルや本文を含めた内容全体を見て、Gmail がセキュリティ上リスクがあると判断したときに返されるエラーです。
ここで注目したのが、パスワード付き ZIP という形式です。
Gmail は、受信した添付ファイルを自動で検査します3。
ウイルスが入っていないか、危険なプログラムが含まれていないかを見るためです。
しかし、パスワード付き ZIP の場合、中身を開けません4。
検査ができないファイルになります。
Gmail にとって、パスワード付き ZIP は「安全かどうか判断できない荷物」なのだと思いました。
パスワードを付けたのは、こちらなりの配慮でした。
それが原因で届かない、というのは少し皮肉です。
安全のためにやったことが、安全装置に止められることもあるんだね
今回のエラーは、トラブルというより Gmail の仕様に沿った挙動でした。
ただし、一方で、はっきりしない点もあります。
Google は、パスワード付き ZIP を必ずブロックすると公式に書いているわけではありません。
実際、通る場合もあるようです5。
判定は、ファイル形式や送信状況など、複数の要素を組み合わせた自動評価だと考えられます。
3. おわりに
エラーメールが返ってきたときは戸惑いました。
Gmail 宛てにファイルを送る場合、パスワード付き ZIP は「検査できない添付」として扱われる可能性があります。
- Gmailは特定のファイルタイプ(実行可能ファイルや一部のスクリプトファイルなど)を含むZIPファイルをブロックします。クラウドストレージを使用することで、これらの制限を回避しつつ、より細かいアクセス権限の管理が可能になります。 – Gmail blocks some emails because of the attachment file types
- 552-5.7.0エラーは、Gmailがメッセージの内容や添付ファイルにセキュリティ上の問題を検出した際に返すエラーコードです。特に実行可能ファイルを含むZIPファイルや、検査できない暗号化ファイルが原因となることが多いです。 – SMTP Email Error 552 5.7.0 – How to Resolve
- Gmailは添付ファイルに対してウイルスやマルウェアの自動スキャンを実行していますが、パスワード保護されたZIPやRARファイル、特にファイル名も暗号化されているアーカイブは中身を検査できないため、セキュリティポリシーによりブロックされる場合があります。 – Filter messages with attachments – Google Workspace Admin Help
- Googleの公式ヘルプによれば、Gmailはパスワード保護されたZIPファイルを開いたり検査したりすることができません。このため、潜在的なセキュリティリスクとして扱われます。 – File types blocked in Gmail – Gmail Help
- パスワード付きZIPのブロックは絶対的なルールではなく、複数の要素(ファイルサイズ、送信元の評判、ファイル名の暗号化有無など)を総合的に判断した結果として決定されます。同じパスワード付きZIPでも、ファイル名が暗号化されていない場合は通過することがあります。 – 7-Zip Discussion: Gmail blocks password protected and encrypted 7z archive