feat: Postfach-Formular in den Einstellungen

Server, Port, Benutzer und Passwort eintragen, Verbindung testen, Ordner
danach aus der echten Liste des Postfachs waehlen. Je Absender wird ein
Zielkonto zugeordnet – ohne Zuordnung uebernimmt Certain nichts, denn
dieselbe Adresse kann je nach Konto etwas anderes bedeuten.

Der Hinweis am Passwortfeld sagt, was passiert, wenn das Server-Geheimnis
getauscht wird, und empfiehlt ein App-Passwort statt des echten.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Guido
2026-08-22 20:00:06 +02:00
co-authored by Claude Opus 5
parent fc6ee2f345
commit 8e41cce9a2
6 changed files with 306 additions and 0 deletions
+11
View File
@@ -173,6 +173,17 @@ export const api = {
setInboxCategory: (id, categoryId) =>
request(`/inbox/${id}/category/${categoryId}`, { method: "POST" }),
// Postfächer für den Mail-Abruf
listMailSources: () => request("/mail/sources"),
createMailSource: (body) => request("/mail/sources", { method: "POST", body }),
updateMailSource: (id, body) => request(`/mail/sources/${id}`, { method: "PUT", body }),
deleteMailSource: (id) => request(`/mail/sources/${id}`, { method: "DELETE" }),
testMailSource: (id) => request(`/mail/sources/${id}/test`, { method: "POST" }),
fetchMailSource: (id) => request(`/mail/sources/${id}/fetch`, { method: "POST" }),
listMailSenders: (id) => request(`/mail/sources/${id}/senders`),
createMailSender: (id, body) => request(`/mail/sources/${id}/senders`, { method: "POST", body }),
deleteMailSender: (id) => request(`/mail/senders/${id}`, { method: "DELETE" }),
// Kategorien (Gruppen + Kategorien)
listCategories: () => request("/categories"),
createGroup: (body) => request("/categories/groups", { method: "POST", body }),