3.3 KiB
BoxPilot Logistics — MC/DOT Solicitation Detection
Account
- Email:
hello@boxpilotlogistics.com - Password:
1New.opportunity - IMAP:
mail.boxpilotlogistics.com:993 - SMTP:
mail.boxpilotlogistics.com:2525(port 587/465 blocked from netcup) - Solicitation folder: top-level "Solicitation" (subscribed, not under INBOX)
After initial cleanup
After running the triage script against all ~120 inbox messages:
- 87 solicitations moved to Solicitation folder
- 36 legitimate messages remain in inbox
Detection Heuristics
Three-tier detection:
1. Free-domain mismatch (highest confidence)
Sender from free domain (gmail, yahoo, outlook, etc.) AND body references a business domain → solicitation
2. Free-domain + subject keywords
Trusting keywords from free-domain senders: insurance, factoring, fuel, dispatch, load board, freight, logistics, carrier, broker, MC authority, DOT authority, compliance, IFTA, IRP, E-log, ELD, safety, lease, warranty, quote
3. Business-domain service offers
Even from real company domains, anything offering to a newly registered MC: trucking insurance quotes, compliance/DOT filings (BOC-3), factoring, fuel cards, ELD sales, dispatch services, load board subscriptions, logo/web/SEO
Domain extraction
FREE_DOMAINS = {"gmail.com", "yahoo.com", "yahoo.co.uk", "ymail.com", "outlook.com",
"hotmail.com", "live.com", "msn.com", "aol.com", "icloud.com",
"me.com", "mac.com", "protonmail.com", "proton.me", "pm.me",
"mail.com", "inbox.com", "zoho.com", "yandex.com", "gmx.com",
"fastmail.com", "tutanota.com", "rediffmail.com", "libero.it",
"web.de", "gmx.de", "t-online.de", "online.de"}
def extract_domains(text):
domains = set()
for m in re.finditer(r'https?://(?:www\.)?([a-z0-9.-]+\.[a-z]{2,}(?:\.[a-z]{2,})?)', text, re.I):
d = m.group(1).lower()
if d not in ('google.com', 'youtube.com', 'facebook.com', 'linkedin.com', 'twitter.com', 'x.com', 'instagram.com'):
domains.add(d)
for m in re.finditer(r'[a-z0-9._%+-]+@([a-z0-9.-]+\.[a-z]{2,}(?:\.[a-z]{2,})?)', text, re.I):
d = m.group(1).lower()
if d not in FREE_DOMAINS:
domains.add(d)
return domains
Categories of MC-registration spam seen
| Category | Example domains |
|---|---|
| Insurance | themcclureagency, coastaltruckinginsurance, allnevadainsurance |
| Compliance | uscompliance.io, dotregistrations.org, fmcsaprocessagents |
| Factoring | otr.otrsolutions.com |
| ELD | preventty.com |
| Promo | slackhq.com, Amex promo emails |
| Logo/Web | Various free-domain senders |
Folder visibility
The Solicitation folder must be subscribed via IMAP (IMAP4.subscribe('Solicitation')) for email clients to see it. If the user doesn't see it, they may need to log out and back in.
Cron
cronjob(action='create', schedule='every 10m', script='boxpilot-triage.py', no_agent=True, deliver='origin')
Pitfalls
- Folder not showing: Subscribe via
conn.subscribe('Solicitation')— clients only show subscribed folders - Move pattern:
conn.copy(num, 'Solicitation')thenconn.store(num, '+FLAGS', '\\\\Deleted')thenconn.expunge()— IMAP has no atomic MOVE - Initial cleanup: Process ALL inbox messages, not just recent unread, since the inbox may already be flooded