Files

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') then conn.store(num, '+FLAGS', '\\\\Deleted') then conn.expunge() — IMAP has no atomic MOVE
  • Initial cleanup: Process ALL inbox messages, not just recent unread, since the inbox may already be flooded