FR-2 confirmed: source address is X-Pm-Original-To (PurelyMail); forwarding verified
This commit is contained in:
21
AGENTS.md
21
AGENTS.md
@@ -47,7 +47,7 @@ Each item is testable. Numbering is stable; do not renumber.
|
|||||||
| ID | Requirement |
|
| ID | Requirement |
|
||||||
|---|---|
|
|---|---|
|
||||||
| FR-1 | Fetch new mail from Gmail with the Gmail API, on an n8n schedule. Store metadata and body. |
|
| FR-1 | Fetch new mail from Gmail with the Gmail API, on an n8n schedule. Store metadata and body. |
|
||||||
| FR-2 | Record which address the mail came through (`sam@audasmedia.com.au`, `hello@where-woof.com`, `hello@kontra.day`, or catch-all), read from the headers. |
|
| FR-2 | Record which address the mail came through. Read **`X-Pm-Original-To`** (added by PurelyMail). Fallbacks, in order: `To`, the PurelyMail `Received ... for <address>` clause, `Return-Path`. |
|
||||||
| FR-3 | Classify each message with JEV: category, importance, suggested action, and a confidence. |
|
| FR-3 | Classify each message with JEV: category, importance, suggested action, and a confidence. |
|
||||||
| FR-14 | Edit the category list in the UI: add, rename, remove. JEV uses the current list. |
|
| FR-14 | Edit the category list in the UI: add, rename, remove. JEV uses the current list. |
|
||||||
| FR-4 | Apply user-written rules from the rules editor to override or refine the classification. |
|
| FR-4 | Apply user-written rules from the rules editor to override or refine the classification. |
|
||||||
@@ -220,16 +220,14 @@ Resolved:
|
|||||||
5. **Retention:** one month of message bodies.
|
5. **Retention:** one month of message bodies.
|
||||||
6. **Mail access is IMAP + app password** — no console, no OAuth. Working on `.13`
|
6. **Mail access is IMAP + app password** — no console, no OAuth. Working on `.13`
|
||||||
and `.51`.
|
and `.51`.
|
||||||
|
7. **Source address is `X-Pm-Original-To`.** Confirmed on a real forwarded message
|
||||||
|
(`X-Pm-Original-To: Hello@where-woof.com`). PurelyMail adds this header, so
|
||||||
|
Gmail's overwritten `Delivered-To` does not matter. See FR-2.
|
||||||
|
8. **PurelyMail forwarding is live**, confirmed end to end.
|
||||||
|
|
||||||
Remaining:
|
Remaining:
|
||||||
|
|
||||||
1. **No domain mail is arriving yet.** All 617 inbox messages are addressed to
|
1. **Send-as:** sending as a domain address needs Gmail "Send mail as" set up for
|
||||||
`samuelrolfe@gmail.com`. None to `where-woof.com`, `audasmedia.com.au`, or
|
|
||||||
`kontra.day`. Confirm the PurelyMail forwarding, then send a test message.
|
|
||||||
2. **FR-2 header:** Gmail sets `Delivered-To` to the Gmail address. The original
|
|
||||||
domain address must come from the forwarding headers (`X-Original-To`,
|
|
||||||
`Delivered-To`, or the envelope). Confirm with a real forwarded sample.
|
|
||||||
3. **Send-as:** sending as a domain address needs Gmail "Send mail as" set up for
|
|
||||||
that address.
|
that address.
|
||||||
|
|
||||||
### Infrastructure notes (found during setup)
|
### Infrastructure notes (found during setup)
|
||||||
@@ -239,3 +237,10 @@ Remaining:
|
|||||||
and SMTP.
|
and SMTP.
|
||||||
- Credentials live in `~/.config/environment.d/10-secrets.conf` on `.13` and `.51`,
|
- Credentials live in `~/.config/environment.d/10-secrets.conf` on `.13` and `.51`,
|
||||||
as `GMAIL_USER` and `GMAIL_APP_PASSWORD`.
|
as `GMAIL_USER` and `GMAIL_APP_PASSWORD`.
|
||||||
|
- **Header fields seen on a real forwarded message** (id 619, from `favrolfe@gmail.com`):
|
||||||
|
```
|
||||||
|
X-Pm-Original-To: Hello@where-woof.com <- use this
|
||||||
|
To: Hello@where-woof.com
|
||||||
|
Return-Path: <Hello@where-woof.com>
|
||||||
|
Delivered-To: samuelrolfe@gmail.com <- Gmail overwrites this; ignore
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user