Skip to content

apparition47/MailTrackerBlocker

Repository files navigation

MailTrackerBlocker is a email tracker blocking plugin (mailbundle) for macOS Mail. Email marketers and other interests often embed these trackers in HTML emails so they can track how often, when and where you open your emails. Find out who is tracking you and block spy pixels without needing to disable "load remote content in messages" so that you can browse your inbox privately with images displayed once again.

Requirements

Setup

Installation

You can install MailTrackerBlocker.pkg directly from the releases page or via Homebrew Cask:

$ brew install mailtrackerblocker

Usage

macOS 12, 13
1. Tap on the button to find out what was blocked.
2. [Optional] Images are safe for viewing so to re-enable: from the Mail menu bar, open Settings > Privacy > disable "Block All Remote Content".
macOS 10.11, 10.12, 10.13, 11
1. Tap on the button to find out what was blocked.
2. [Optional] Images are safe for viewing so to re-enable: from the Mail menu bar, open Settings > Viewing > re-enable "Load remote content in messages".
macOS 10.14, 10.15
1. Open Mail, goto `Preferences > General > Manage Plug-ins... > check "MailTrackerBlocker.mailbundle" > Apply and Restart Mail`. Note that you'll need to do this again for each update.
2. Tap on the button to find out what was blocked.
3. [Optional] Images are safe for viewing so to re-enable: from the Mail menu bar, open Settings > Viewing > re-enable "Load remote content in messages".

To uninstall

If you installed with Homebrew:

$ brew uninstall mailtrackerblocker

If you installed the pkg manually:

osascript -e "quit app \"Mail\""
# plugin files
sudo rm -r /Library/Mail/Bundles/MailTrackerBlocker.mailbundle
sudo rm -r /Library/Application\ Support/com.onefatgiraffe/mailtrackerblocker
sudo pkgutil --forget com.onefatgiraffe.mailtrackerblocker
# user-generated settings
rm -r ~/Library/Containers/com.apple.mail/Data/Library/Application\ Support/com.onefatgiraffe.mailtrackerblocker
defaults delete com.apple.mail _mtb_IsAutoUpdateCheckAllowed
defaults delete com.apple.mail _mtb_IsFirstStartup
defaults delete com.apple.mail _mtb_LastUpdateCheckDate

FAQ

Does this work with Mail Privacy Protection?

Yes, in some network environments (e.g. VPN) where Mail Privacy Protection doesn't work, MailTrackerBlocker will still block and identify trackers if you choose to "Load Remote Content".

Note: Mail Privacy Protection's proxy will still fetch the tracker image, triggering the tracker after an unknown period of time. In the period of time before this happens, if you open your email without MailTrackerBlocker, the proxy will fetch the tracking image and trigger the tracker at that moment still letting the tracker know your exact opening time.

Why am I getting a "Incompatible Plug-ins Disabled" message after enabling?

Typically caused by a Mac migration or a restoration from backup. Delete Mail's private plugin-ins dir (or DataVaults) to fix this issue. This directory will safely and automatically be regenerated afterwards.

Why is my Mail so slow?

This issue isn't related to MailTrackerBlocker but such problems can be resolved by doing a complete Mailbox Rebuild to force Mail to regenerate its indexes.

Building from source

Building will automatically install a copy into your /Library/Mail/Bundles/ dir so if you have a current installation from the public pkg installer, you'll need to remove it due to permissions: $ rm -rf /Library/Bundles/MailTrackerBlocker.mailbundle.

git clone https://github.com/apparition47/MailTrackerBlocker.git --recursive
cd MailTrackerBlocker

A. Make

To sign with your identity, edit the Makefile to specify your own Developer ID Application (used to sign the plugin binary [for macOS 11 and up]) and Developer ID Installer (used to sign the pkg) certificates. You can also comment out the top lines to disable signing.

To build binary, pkg and sign (if configured):

make all
open build/Release

B. Xcode

  1. Give Xcode Full Disk Access from System Preferences > Security & Privacy > Privacy > Full Disk Access and add Xcode.
    • Required because the mailbundle needs to be installed into /Library/Mail/Bundles.
  2. Open the Xcode project.
  3. Change the Signing settings in Signing & Capabilities (macOS 11 and up: you'll need to use your own Developer ID Application certificate; below macOS 11: set it to none/don't sign) then hit build.
    • mac OS 11 and up: allow Finder access to allow Xcode to copy unsigned directly into sandboxed env

BSD-3.