Email Registration Scanner
by @fatihbtw
Scans email accounts (Gmail, iCloud, Outlook, Yahoo, AOL, GMX, Web.de, Fastmail, Proton, T-Online and more) for registration, welcome and confirmation emails...
clawhub install email-registration-scannerπ About This Skill
name: registration-scanner description: Scans email accounts (Gmail, iCloud, Outlook, Yahoo, AOL, GMX, Web.de, Fastmail, Proton, T-Online and more) for registration, welcome and confirmation emails to build a chronological list of all services the user has ever signed up for. Triggers on phrases like "where am I registered", "scan my email for registrations", "show me all my accounts", "welche dienste habe ich", "wo bin ich registriert", "liste mes inscriptions", "encuentra mis registros". user-invocable: true metadata: {"openclaw":{"emoji":"π","always":false}}
Registration Scanner
Scans one or more email accounts for registration-related emails and returns a deduplicated, date-sorted list of every service the user has ever signed up for.
Supported Providers
| Provider | Access Method | |---|---| | Gmail | Gmail tool / MCP connector | | iCloud Mail | IMAP β imap.mail.me.com:993 | | Outlook / Hotmail / Live | IMAP β outlook.office365.com:993 | | Yahoo Mail | IMAP β imap.mail.yahoo.com:993 | | AOL Mail | IMAP β imap.aol.com:993 | | GMX | IMAP β imap.gmx.net:993 | | Web.de | IMAP β imap.web.de:993 | | T-Online | IMAP β secureimap.t-online.de:993 | | Fastmail | IMAP β imap.fastmail.com:993 | | Proton Mail | IMAP Bridge β 127.0.0.1:1143 (Bridge required) |
Full provider details and IMAP setup guides β {baseDir}/references/providers.md
Step 1 β Identify Accounts
Ask the user which email accounts to scan before doing anything else:
> "Which email accounts should I scan? (e.g. Gmail, iCloud, Outlook, Yahoo, AOL, GMX, Web.de, T-Online, Fastmail, Proton β or all of them?)"
Wait for the answer. Do not proceed until the user has confirmed.
Step 2 β Collect Credentials
Gmail
Use the Gmail tool or Gmail MCP connector if already configured. If not configured, tell the user: > "Please connect your Gmail account first viaopenclaw configure or by enabling the Gmail MCP connector."IMAP Providers (iCloud, Outlook, Yahoo, AOL, GMX, Web.de, T-Online, Fastmail)
Explain to the user: > "For [provider] I need your email address and an app-specific password (not your regular login password). You can generate one in your account's security settings. I will use it only for this session and never store it in plain text."Refer to provider-specific instructions for generating app passwords β {baseDir}/references/providers.md
Proton Mail
Proton Mail requires the Proton Mail Bridge to be running locally. > "For Proton Mail, please make sure the Proton Mail Bridge is running. I will connect to it locally at 127.0.0.1:1143."Step 3 β Run the Scan
Gmail
Use the Gmail tool to search with these queries in sequence. Collect all matching message IDs.Search queries across all languages β {baseDir}/references/search-queries.md
IMAP Accounts
Use the Python script at{baseDir}/scripts/imap_scan.py to connect and search:python3 "{baseDir}/scripts/imap_scan.py" \
--host "imap.mail.me.com" \
--port 993 \
--user "user@icloud.com" \
--password "app-specific-password" \
--output "/tmp/registration_scan_results.json"
The script runs all search query batches automatically and returns a JSON list of matches.
Run this for each IMAP account separately, saving results to different temp files.
Step 4 β Parse and Deduplicate Results
For every matched email:
1. Extract: From, Date, Subject
2. Derive the service name from the sender domain or subject line
Example: noreply@spotify.com β Spotify, hello@notion.so β Notion
3. Deduplicate by service: keep only the oldest entry per service (= original registration)
4. Skip: transactional emails (password resets, receipts), pure newsletters with no registration context, internal/personal senders
Step 5 β Output
Present the final list sorted newest first. Use this format:
π REGISTERED SERVICES β [Account Name]
ββββββββββββββββββββββββββββββββββββ
Found: XX services | Range: YYYY β YYYYYYYY-MM-DD Service Name
From: sender@domain.com
YYYY-MM-DD Service Name
From: sender@domain.com
...
ββββββββββββββββββββββββββββββββββββ
If multiple accounts were scanned, merge all results into one unified list sorted by date.
After showing the list, ask: > "Should I save this as a file? Or filter by a specific service or date range?"
Error Handling
{baseDir}/references/providers.md for setup steps.{baseDir}/references/providers.mdPrivacy & Security Rules
/tmp/registration_scan_*.json) after the session ends.