A powerful Thunderbird extension that reveals the real destination of obfuscated email security links and shortened URLs with privacy-preserving resolution options.
Supports 18+ email security services including Microsoft, Proofpoint, Mimecast, Barracuda, Cisco, AWS SES, and more.
Automatically peels off multiple layers of URL rewriting when attackers chain several protection services together (e.g., Safe Links wrapping Proofpoint wrapping the real URL). The popup shows the full chain of services that were removed.
Detects and resolves shortened URLs (bit.ly, tinyurl.com, t.co, etc.) with clear privacy warnings.
- π Direct Resolution (fast, <1s) - Available now
- π§ Tor Resolution (private, in development) - Anonymous via embedded Tor
Warning button automatically appears in the message toolbar when opening emails containing obfuscated links, showing the exact count of protected URLs detected.
Right-click any protected or shortened link β Select "Deobfuscate Link" β See the real destination or choose resolution method.
- Clean, modern interface that respects your system theme (light/dark mode)
- Shows both original and decoded URLs side-by-side
- One-click copy buttons for easy URL sharing
- Clear privacy warnings before any network requests
- All protection service processing happens locally in Thunderbird
- No automatic URL resolution - always requires user consent
- Clear privacy warnings explain what information is exposed
- No external servers or tracking for protection services
- Original emails remain completely unchanged
Decoded URLs open in Firefox (or your default browser), not within Thunderbird.
|
Enterprise Solutions
|
Additional Services
|
Popular Services
- β bit.ly / bitly.com
- β TinyURL (tinyurl.com)
- β Twitter (t.co)
- β Google (goo.gl)
- β Ow.ly
- β is.gd
- β Buff.ly
Social Media & Enterprise
- β LinkedIn (lnkd.in)
- β YouTube (youtu.be)
- β Facebook (fb.me)
- β Amazon (amzn.to)
- β eBay (ebay.us)
- β Rebrandly (rebrand.ly)
Privacy-Focused Services
- β URLVanish (urlvanish.com)
Email Click Trackers
- β Action Network (click.actionnetwork.org)
Additional Shorteners
- β adf.ly, bc.vc, clck.ru, db.tt, ity.im, q.gs, qr.ae, qr.net, smarturl.it, su.pr, trib.al, u.to, v.gd, x.co, zip.net, zpr.io, and more!
- Download
deobfuscator.xpifrom Releases - Open Thunderbird
- Go to Add-ons and Themes (β‘ menu β Add-ons and Themes)
- Click the gear icon βοΈ β Install Add-on From Fileβ¦
- Select the downloaded
deobfuscator.xpifile
- Clone this repository
- Open Thunderbird β Add-ons and Themes
- Click gear icon βοΈ β Debug Add-ons
- Click Load Temporary Add-onβ¦
- Navigate to the
src/folder and selectmanifest.json
- Open an email with a protected link
- Look for the warning β A warning button automatically appears in the message toolbar showing:
β οΈ Warning: 3 Obfuscated Links β οΈ - Right-click on any obfuscated URL
- Select "Deobfuscate Link" from the context menu
- Review the popup showing:
- π Original link: The wrapped/protected URL
- β Clean URL: The real destination
- Choose an action:
- π’ Open Clean Link β Opens the decoded URL (recommended)
- π΄ Open Original Link β Opens the wrapped URL (if needed)
- βͺ Cancel β Close without action
- π Copy β One-click copy either URL to clipboard
Example:
Before: https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fexample.com
After: https://example.com
Multi-layer example:
Before: https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.proofpoint.com%2Fv2%2Furl%3Fu%3Dhttps-3A__example.com
After: https://example.com (2 layers removed: Microsoft Safe Links, Proofpoint URL Defense)
-
Open an email with a shortened link (bit.ly, tinyurl.com, etc.)
-
Right-click on the shortened URL
-
Select "Deobfuscate Link" from the context menu
-
Review the warning β Extension detects shortener and shows:
β οΈ URL Shortener Detected Service: bit.ly (URL shortener) β οΈ Destination Unknown -
Choose resolution method:
π Direct Resolution (Fast)
- Exposes to shortener: Your IP address, timestamp, that you checked this link
- Speed: Usually <1 second
- Click: "Resolve Directly"
π§ Tor Resolution (Private) β In development
- Will hide your real IP (uses Tor exit node)
- Anonymous resolution via embedded Tor
- Expected speed: 3-10 seconds
- Status: Not yet available
-
After resolution, see the final destination:
- π Shortened link: bit.ly/abc123
- β Final destination: https://example.com/real/page
-
Choose an action:
- π’ Open Destination β Opens the resolved URL (recommended)
- π΄ Open Shortened Link β Opens the shortener URL
- βͺ Cancel β Close without action
Example:
Before: https://bit.ly/3xY2zQ
Privacy Warning β User Confirms β Resolution
After: https://example.com/real/destination/page
Email Security Links:
- β 100% local processing
- β No network requests
- β Instant results
URL Shorteners:
- β Detection happens locally (no network)
β οΈ Resolution requires network request- β Always asks permission first
- β Clear warnings about privacy trade-offs
- β User chooses between speed and privacy
- π« Never resolves automatically
A build script is included for your convenience:
./build.shThis creates deobfuscator.xpi from the src/ directory with all necessary files.
Manual build:
cd src
zip -r ../deobfuscator.xpi *deobfuscator/
βββ src/
β βββ background.js # Core deobfuscation logic, shortener detection & resolution
β βββ popup.html # Popup UI with multiple views (protection/shortener/resolved)
β βββ popup.js # Popup behavior, resolution flow & clipboard functionality
β βββ manifest.json # Extension manifest (v2)
βββ build.sh # Build script
βββ deobfuscator.xpi # Packaged extension
βββ README.md # This file
The extension uses a multi-tier detection and resolution system:
- Message Monitoring: Listens for
messageDisplay.onMessageDisplayedevents - Content Scanning: Fetches and scans message body for obfuscated link patterns
- Visual Warning: Displays warning button in message toolbar with link count
- Real-time Updates: Warning appears/disappears as you switch messages
- Shortener Detection: Identifies 25+ URL shortener services by domain pattern
- Right-Click: User right-clicks any link in the message
- Analysis: Background script identifies the protection service or shortener
- Multi-Layer Unwrapping: Iteratively peels off nested protection layers (up to 10 deep) until the real URL or a shortener is reached
- Display: Shows both URLs in themed popup window, with the full chain of services removed
- Action: Opens selected URL in default browser
- Detection: Identifies shortened URL (bit.ly, tinyurl, etc.)
- Privacy Warning: Shows clear warning about what data will be exposed
- User Consent: User explicitly chooses resolution method
- Direct Resolution:
- First tries HTTP HEAD request (minimal data transfer)
- Falls back to GET only if needed
- Follows redirects automatically
- Parses HTML for meta refresh/JavaScript redirects as last resort
- Tor Resolution (in development): Will use embedded Tor (anonymous, slower)
- Display: Shows original and resolved URLs
- Action: User decides which URL to open
This approach works around Thunderbird's security restrictions on owl:// and imap:// protocols.
Email Security Services:
- Microsoft Safe Links: Extracts
urlparameter - Proofpoint v2: Custom character substitution decode
- Proofpoint v3: Path-based extraction
- Generic Services: Tries common parameter names (
url,u,dest,target, etc.) - Multi-Layer: Iterative unwrapping of nested protection services (up to 10 layers deep), with full service chain displayed in the popup
URL Shorteners:
- Detection: Domain pattern matching (local, no network)
- Direct Resolution:
- Tries HTTP HEAD request first (minimal data transfer, privacy-friendly)
- Falls back to GET only if HEAD doesn't work
- Follows HTTP redirects automatically
- Parses HTML for meta refresh and JavaScript redirects as last resort
- Tor Resolution (in development): Arti (Tor in WebAssembly) for anonymous resolution
Email Security Links:
- β All processing is local
- β No network requests
- β No data collection
- β Instant results
URL Shorteners:
- β Detection is local (no network)
β οΈ Third-Party Querying: Resolution involves the add-on querying the shortener service directly. This is functionally equivalent to clicking the original link, but the action is triggered by the add-on without the user clicking the link in the email body.β οΈ Resolution requires network request (exposes your IP)- β Always asks permission first
- β Clear warnings about privacy trade-offs
- β User chooses between speed and privacy
- π« Never resolves automatically
General:
- β Minimal permissions required
- β No external servers or tracking
- β Open source and auditable
Clean, modern interface showing original and decoded URLs with action buttons.
Automatically adapts to your system theme for comfortable viewing.
No configuration needed! The extension works out of the box with sensible defaults.
Contributions are welcome!
- Edit
src/background.js - Add hostname detection in
deobfuscateUrl() - Add service name in
identifyService() - Test with sample URLs
- Submit a pull request
- Edit
src/background.js - Add domain to
SHORTENER_DOMAINSarray - Test detection and resolution
- Submit a pull request
- β¨ Initial release
- π‘οΈ Support for 17+ email security services
- π URL shortener detection (26+ services including URLVanish)
- π Direct shortener resolution with privacy warnings
- π Privacy-friendly HTTP HEAD requests (minimal data transfer)
β οΈ Automatic detection with warning indicator in message toolbar- π¨ Theme-aware popup interface with multiple views
- π Copy-to-clipboard functionality
- π Opens URLs in default browser
- π Privacy-first design with explicit user consent
- π Multi-layer URL rewriting support: iteratively unwraps nested protection services
- π§ Embedded Tor support for anonymous shortener resolution (via Arti WebAssembly)
- βοΈ User preferences and settings page
- π Bulk shortener resolution for multiple links in one email
- π― Improved resolution success rate
This project is licensed under the MIT License - see the LICENSE file for details.
- Built for Thunderbird 102+
- Designed with privacy and security in mind
- Community-driven development
- π Found a bug? Open an issue
- π‘ Have a suggestion? Start a discussion
- π§ Need help? Check the Wiki
Made with β€οΈ for the Thunderbird community

