email attachments blocked: support explanation
A support explanation for blocked email attachments: file-type policies, size limits, and scanner quarantines, plus the alternatives to offer. Use when users report attachments not arriving or being stripped, or when writing email help docs. Not for mail server administration, security policy design, or encrypted email setup.
TL;DR
Attachments get blocked at three gates: the file type (executables and macros are stripped by policy), the size (usually 10 to 25MB), and the content scanner (it quarantined something suspicious). Tell the user which gate fired and offer the alternative: a share link for big files, a renamed or zipped archive for blocked types, or a resend after the scanner clears. "It did not arrive" is never the whole story.
The query
email attachments blocked: support explanationUse this when
- Users report attachments not arriving or stripped
- Writing email help documentation
- "Attachment missing" tickets
- Explaining mail filtering to non-technical users
Not for
- Mail server administration
- Security policy design
- Encrypted email setup
- Building file-sharing features
Steps
1. Identify which gate fired
Ask what happened: attachment missing entirely (stripped), bounce message (rejected), or the email never arrived (quarantined). Check the mail logs if you have access. Each symptom maps to a gate.
Expected output: the blocking gate identified.
2. Explain the file-type policy
Executable files, scripts, and macro-enabled documents are blocked by nearly every mail system because they are the classic malware carriers. This is policy, not a bug. Name the blocked types for your system.
Expected output: the user understands it is policy.
3. Check the size limit
Most providers cap attachments at 10 to 25MB. Oversized attachments bounce or silently strip. The fix is not a bigger limit; it is a share link.
Expected output: size confirmed against the limit.
4. Offer the alternative that fits
Big file: upload to the file-sharing service and send a link. Blocked type: zip it (some scanners still flag zips of executables; then use a link). Scanner quarantine: wait for clearance or resend clean.
Expected output: the file delivered another way.
Template: the explanation
I checked on your attachment, [Name]. Here is what happened:
[Type blocked:] Our mail system strips [file types] automatically because they are commonly used to spread malware. This is a security policy, not an error. The fix: [zip it / upload it to (service) and send the link instead].
[Too big:] The attachment was [size], and the limit is [limit]. The email could not carry it. Upload the file to [service] and share the link: it is faster and there is no size issue.
[Quarantined:] Our scanner flagged the attachment and held it for review. [It was cleared / please resend a clean version.]Variant phrasings
attachment not received email
Steps 1 and 2. Which gate, then the type policy.
cannot send exe by email
Step 2 plus step 4. Policy explanation plus the link alternative.
email attachment size limit
Step 3. State the limit and pivot to share links.
Why it works
Users experience all three gates as "my attachment disappeared." Naming the gate converts confusion into a solvable problem, and the alternative (share link) is usually better than the attachment anyway. Explaining the security reason prevents the "your system is broken" argument.
Edge cases
- The recipient's system blocked it, not yours: the sender did everything right. Give them the explanation to forward to the recipient's IT.
- False positives on legitimate files: have a process to allowlist or release. Do not tell users "nothing can be done."
- Encrypted zips: scanners cannot inspect them and many systems block them outright. Mention it before users try.
- Internal vs external policies differ: state which one applied. Users get confused when internal mail allows what external blocks.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_WNgA6igdDVTWXYmcB2mE1w
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.