postulo-imap: read the job-hunt mailbox over IMAP and suggest timeline events; no POP3 #34
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
security
tier
1
tier
2
tier
3
tier/4
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Depends on
Reference
Postulo/postulo#34
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Observation
Why
Every application produces mail: an acknowledgement, a rejection, an interview invitation with a date, an assessment link, eventually an offer. Today each has to be typed into the timeline by hand, which is why timelines go stale.
docs/PLAN.mddeferred email ingestion past v1; this is the plugin that does it, against the interfaces the milestone is building.IMAP, not POP3, by decision. POP3 has no folders, no flags and no server-side state: it downloads, and usually deletes. IMAP lets Postulo read one folder the person chose, mark what it has processed, and leave everything else untouched — which is the only acceptable way to put a job tracker near a mailbox.
Shape
postulo-imap, registering a sync in thepostulo.syncsgroup and using a connection (#11): host, port (993, implicit TLS; STARTTLS as an option), username, password or app password (secret), the folder to read, and how to mark messages as processed (an IMAP keyword such as$Postulo, or moving them to a subfolder). IMAP4rev1 and rev2 (RFC 3501, RFC 9051) throughimapclient(BSD-3) over the standard library'simaplib.IDLElater, if anyone needs minutes to become seconds.Company.website's domain, the sender againstContact.email, the company name or role title in the subject or body, andIn-Reply-Tothreads of messages already matched. Unmatched mail is shown as such, and can be attached by hand.record_eventorchange_status; declining teaches nothing yet, but is remembered so the same message is not suggested twice.Classification
Enhancement. A separate package; changes nothing unless installed and connected. Not breaking.
Depends on
postulo.syncsgroupOpen questions