87 lines
4.1 KiB
Markdown
87 lines
4.1 KiB
Markdown
# Email Signature — Sho'Nuff
|
|
|
|
## Current Signature (Jul 2026)
|
|
|
|
The signature is rendered from `/root/.hermes/references/shonuff-email-signature.html`.
|
|
The Sho'Nuff quote is placed as a standalone line in the email body BEFORE the `<hr>` separator and signature block.
|
|
|
|
```
|
|
━━━ red 40px accent bar (2px thick, rounded, #cc0000) ━━━
|
|
|
|
┌──────────────────────┐
|
|
│ │
|
|
│ Circular avatar │ Sho'Nuff Brown (weight 900)
|
|
│ (base64 embedded) │ [Random title from shonuff-titles.py]
|
|
│ │ IT Pro Partner
|
|
│ │
|
|
│ │ tel — —— —— —— ——
|
|
│ │ @ shonuff@germainebrown.com
|
|
└──────────────────────┘
|
|
```
|
|
|
|
### Latest changes (Jul 6, 2026)
|
|
- Separator: gradient line → **solid red 40px bar** (#cc0000, 2px, rounded corners)
|
|
- Name color: #222222 → **#1a1a1a**, weight 700 → **900**
|
|
- Phone label: "Tel:" → **"tel"** (lowercase, gray #bbbbbb)
|
|
- Email label: "Email:" → **"@"** (minimal)
|
|
- Phone placeholder: underscores → **dashed line** with letter-spacing
|
|
- Email link: plain blue → **dotted underline** (#555555)
|
|
- Image: S3 URL → **base64 data URI** (Wasabi doesn't allow public-read)
|
|
- Layout: labels on same row as values (two-column table)
|
|
- "Who's the Master?" tagline removed from signature block (quote is the email sign-off before the separator instead)
|
|
- Font stack: added Inter first (modern sans-serif)
|
|
- Vertical alignment: top → **middle** (aligned with image center)
|
|
|
|
## Two placeholders
|
|
|
|
- `%SHONUFF_IMAGE%` — base64 data URI of the character image
|
|
- `%SHONUFF_TITLE%` — random title from `SHONUFF_TITLES` list (rotates per send)
|
|
|
|
## Rotating Titles
|
|
|
|
File: `/root/.hermes/references/shonuff-titles.py`
|
|
|
|
13 titles including "Germaine's AI Ops Engineer", "Germaine's Baddest AI Mofo Low Down Around This Town", "Germaine's Full-Time Menace", and more. Load via `importlib`, pick with `random.choice()`.
|
|
|
|
## Rotating Closing Quotes
|
|
|
|
File: `/root/.hermes/references/shonuff-closings.py`
|
|
|
|
8 quotes. Used as the email sign-off instead of "Thanks" or "Regards". Placed in the email body between the message and the `<hr>`.
|
|
|
|
## Send Script
|
|
|
|
File: `/root/.hermes/scripts/send-shonuff.py`
|
|
|
|
```bash
|
|
python3 /root/.hermes/scripts/send-shonuff.py "<to>" "<subject>" "<body>"
|
|
```
|
|
|
|
The script:
|
|
1. Loads closings + titles from references files, picks random from each
|
|
2. Loads base64 image, substitutes into HTML template
|
|
3. Sends from **shonuff@germainebrown.com** via mail.germainebrown.com:2525
|
|
4. BCCs g@germainebrown.com on every send
|
|
5. Builds multipart/alternative: text/plain (fallback) + text/html (rich)
|
|
|
|
## Sending Rules
|
|
|
|
- All "send me this as an email" requests go from **shonuff@germainebrown.com**
|
|
- BCC the user on every send
|
|
- Do NOT access Germaine's inbox (g@germainebrown.com) unless asked
|
|
- Sho'Nuff's incoming email is shonuff@germainebrown.com (IMAP monitored)
|
|
- SMTP port 2525 everywhere — netcup blocks 25/465/587
|
|
- Password for shonuff SMTP: in `~/.config/himalaya/shonuff.pass` and `.env`
|
|
|
|
## Image Hosting
|
|
|
|
The image is embedded as a base64 data URI (NOT external). Stored at `/root/.hermes/references/shonuff-image-b64.txt` (~78KB). Wasabi S3 does not allow public-read with this IAM user, so data URIs are the only reliable rendering method. Current image used: `/root/.hermes/cache/images/shonuff-v2-clean.png` (600x800, transparent PNG, signature removed).
|
|
|
|
## Inbox Monitoring
|
|
|
|
Sho'Nuff's inbox (shonuff@germainebrown.com) is monitored every 15 minutes via a two-stage cron job:
|
|
1. **Collect script** (`scripts/shonuff-inbox-collect.py`) — checks for new UNSEEN messages from non-trusted senders via IMAP, extracts sender/subject/body preview, outputs JSON
|
|
2. **LLM summary** — reads the collected JSON, summarizes each new message in 2-3 sentences, delivers to Germaine via Telegram
|
|
|
|
Trusted senders (silently skipped): `g@germainebrown.com`, `mailer-daemon@heracles.mxrouting.net`
|