MailCheckr is an advanced browser extension designed to audit email safety. It provides a premium-styled dashboard containing email sender checks, message header analyses, and link scans to protect users against phishing attempts, spam, and identity spoofing.
- Gmail Integration: Monitors Gmail thread views in the background and automatically fetches the raw email source on message opened using the user's active session.
- Background Pipeline: Extracts headers, runs the link scanner, decodes Quoted-Printable sections, and connects to the database using background JWT storage to check sender reputation.
- Tab Auto-fill: Opening the extension popup on an active email automatically populates and displays results for all checks (reputation card, routing hops, link threat table) without requiring manual interaction.
- Gmail In-page Warning Banner: Injects a warning banner directly at the top of the email container inside Gmail if the email contains high-risk links, unverified headers (SPF/DKIM/DMARC failure), or poor sender reputation. Includes a details accordion list and link triggers.
- Programmatic Popup Trigger: Automatically opens the extension popup (
chrome.action.openPopup()) when a high-risk email is opened to notify the user of threats immediately.
- Checks active sender emails against spam databases to retrieve deliverability status and fraud risk.
- Returns a graphical report detailing deliverability, spam score (0-100), and first seen timestamps.
- Automatically extracts headers from open emails or allows manual pasting.
- Parses and displays:
- Metadata: From, Return-Path, and originating Sender IP address.
- Email Signatures: Extraction of SPF, DKIM, and DMARC results.
- Authentication Badging: Color-coded badges indicating verification status (Green = Pass, Yellow = Warning/Neutral, Red = Fail).
- Routing Timeline Flow: Reconstructs a chronological step-by-step received chain detailing each server hop, IP address, and transit timestamps.
- Automatically extracts links from open emails or allows manual pasting.
- Paste Fallback: Supports manually pasting raw domains or IPs (e.g.
paypal.comor1.1.1.1) without thehttp://orhttps://prefix, prepending the protocol automatically. - Audits domains against five strict phishing heuristics:
- IP Hostnames: Flagging raw IPv4/IPv6 addresses.
- Punycode: Detecting Internationalized Domain Name (IDN) homograph attacks.
- URL Shorteners: Identifying hiding destinations (e.g.
bit.ly,tinyurl.com). - Suspicious TLDs: Detecting high-abuse top-level domains (e.g.
.zip,.mov,.win,.loan). - Lookalike Brands: Detecting combo-squatting, typosquatting (homoglyphs like
paypa1.com->paypal), and subdomain spoofing (paypal.com.scam.net).
- Displays scan results in an interactive table detailing the target URL, calculated risk level (Low, Medium, High), and explanations for each issue.
MailCheckr/
├── extension/ # Chrome Extension files
│ ├── login.html # User login page
│ ├── register.html # User registration page
│ ├── popup.html # Main dashboard UI
│ ├── manifest.json # Chrome MV3 manifest configuration
│ ├── styles/
│ │ └── popup.css # Premium dark-theme styling sheet
│ └── scripts/
│ ├── auth.js # User authenticator handlers
│ ├── background.js # Background service worker script
│ ├── content.js # Gmail DOM sender-email extractor
│ ├── popup.js # Form binders and UI rendering logic
│ └── utils.js # Header parsing & Link scanning engine
└── backend/ # Express & MongoDB backend service
├── server.js # Server bootstrapper
├── config/ # Database configurations
├── controllers/ # Route handler controllers
├── middleware/ # JWT authentication middleware
├── models/ # MongoDB models (User)
├── routes/ # Endpoint routers
├── package.json # Backend npm dependencies and scripts
└── tests/
└── utils.test.js # Jest unit test suite for utils.js
- Open a terminal and navigate to the backend directory:
cd backend - Install the dependencies:
npm install
- Create a
.envfile in thebackend/directory with the following variables:PORT=5000 MONGO_URI=mongodb://localhost:27017/mailcheckr JWT_SECRET=your_jwt_secret_key IPQS_API_KEY=your_ipqualityscore_api_key
- Start the server:
The backend server will run on
npm start
http://localhost:5000.
- Open Google Chrome and go to
chrome://extensions/. - Turn on Developer mode using the toggle switch in the upper-right corner.
- Click the Load unpacked button in the upper-left corner.
- Select the
extension/directory of the project. - The MailCheckr extension icon will now appear in your browser toolbar.
We have built unit tests to validate the header parser and link scanning heuristics.
- Navigate to the backend directory:
cd backend - Run the test command:
This will execute the Jest test suite located in
npm testbackend/tests/utils.test.jsagainst the extension'sscripts/utils.jscode.