Your own email: the connection takes a mail password or a send-mail grant, but nothing ever sends through it #361
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
performance
security
tier
1
tier
2
tier
3
tier/4
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Postulo/postulo#361
Loading…
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?
Found on 2026-09-29 in a read-only review of postulo at
95348908d, searching for the callers ofcore/correspondence.pyacross the core, its tests and every sibling repository.Checked again on 2026-10-01 against
mainat0a5cad587: still present. The code is now atplugins/views.py:38(the "Sending as yourself" group); the other locations have not moved, and the same search still finds no caller outside the two test files.Settings → Connections offers Your own email, whose description promises "Send from your own address, over your own mail server". It asks for the person's mail password, or for consent from Google or Microsoft with a mail-sending scope, and keeps the secret. No page, API endpoint, task or plugin ever sends through it:
correspondence.send()andcorrespondence.can_send_as_themselves()are called only from tests. The person hands over a long-lived credential that can send mail as them, and gets nothing for it.plugins/own_mail/__init__.py:48-60(the manifest and its description),notifications/apps.py:34(register_builtin("outbox", OwnMail), on by default),core/correspondence.py:66-68(can_send_as_themselves) and:96-146(send),plugins/views.py:37(the "Sending as yourself" group),config/settings/base.py:410andpostulo.wiki/Configuration.md:300-309, 614-617, 655(the outbox, its consent flow andPOSTULO_OUTBOX_RATEdescribed as working).src/(Python, templates,static/js), and of everypostulo-*repository, finds no caller ofcorrespondence.sendorcan_send_as_themselvesoutsidetests/test_outbox.pyandtests/test_mail_xoauth2.py.POSTULO_OUTBOX_RATEbounds a flow nobody can start.own-mailby default (or hide theoutboxgroup in Settings → Connections), and mark the outbox paragraphs in Configuration and Writing a plugin as groundwork. When the workflow is built — a "send from my address" action on a follow-up letter or a contact, callingcorrespondence.send— register it again. Until then, if the connection stays visible, reword the description to say that no screen sends through it yet.Related to #149 (closed), which built the outbox kind, the settings and the send path, but not the "distinct workflow" it named (sending a follow-up as oneself); and to #151 (closed), which added the OAuth sign-in for it.
Done when
tests/test_outbox.pyfails while Settings → Connections offersown-mailand no view, task or API endpoint callscorrespondence.send; it passes once the kind is hidden or a real sending action exists (and, in the second case, a view test sends a letter through the outbox).