fix: Mails vor der Einrichtung waren fuer immer ausserhalb des Suchfensters
Der Zeitstempel des letzten Abrufs wird auch dann gesetzt, wenn ein Abruf
nichts fand – und danach sucht Certain nur noch ab gestern. Wer das Postfach
einrichtet, nachdem die Mails schon da waren, findet sie nie: Der erste,
ergebnislose Abruf schiebt das Fenster an ihnen vorbei.
Jetzt gibt es "Aelteres nachholen": Es sucht die letzten 90 Tage und uebergeht
den Zeitstempel. Dass dabei nichts doppelt ankommt, sichert wie bisher die
Message-ID.
Ausserdem sagt die Meldung jetzt, AB WANN gesucht wurde. Bisher stand dort
"Stimmt der Ordner?" – die Frage war fast immer die falsche.
Und ein latenter Fehler, der im August nicht auffaellt: Das Suchdatum wurde mit
strftime("%b") gebaut, also mit dem Monatskuerzel in der Sprache des Servers.
IMAP verlangt die englischen; auf einem deutschen System haette die Suche im
Maerz, Mai, Oktober und Dezember nichts gefunden. Die Kuerzel stehen jetzt fest
im Code.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { useEffect, useState } from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { api } from "../../api";
|
||||
import { formatDate } from "../../format";
|
||||
import { useToast } from "../../toast";
|
||||
import { useConfirm } from "../../confirm";
|
||||
import Icon from "../../components/Icon";
|
||||
@@ -86,13 +87,15 @@ export default function Postfaecher() {
|
||||
}
|
||||
}
|
||||
|
||||
async function abrufen(quelle) {
|
||||
async function abrufen(quelle, tage) {
|
||||
setBusy(true);
|
||||
try {
|
||||
const r = await api.fetchMailSource(quelle.id);
|
||||
// „0 neu" allein sagt nicht, ob nichts da war oder nichts passte.
|
||||
const r = await api.fetchMailSource(quelle.id, tage);
|
||||
// „0 neu" allein sagt nicht, ob nichts da war oder nichts passte. Und
|
||||
// wenn nichts da war, ist die Frage nicht „stimmt der Ordner", sondern
|
||||
// „wie weit wurde überhaupt gesucht" – deshalb steht das Datum dabei.
|
||||
toast(r.gefunden === 0
|
||||
? t("mailbox.fetchedNone")
|
||||
? t("mailbox.fetchedNone", { seit: r.seit ? formatDate(r.seit) : "?" })
|
||||
: t("mailbox.fetched", { gefunden: r.gefunden, neu: r.neu, unklar: r.unklar }));
|
||||
setUebergangen(r.ohne_zuordnung || []);
|
||||
laden();
|
||||
@@ -174,6 +177,12 @@ export default function Postfaecher() {
|
||||
<div className="mail-actions">
|
||||
<button className="btn sm" disabled={busy} onClick={() => testen(q)}>{t("mailbox.test")}</button>
|
||||
<button className="btn sm primary" disabled={busy} onClick={() => abrufen(q)}>{t("mailbox.fetchNow")}</button>
|
||||
{/* Der Zeitstempel wird auch gesetzt, wenn ein Abruf nichts fand.
|
||||
Ohne diesen Weg blieben ältere Mails für immer ausserhalb des
|
||||
Fensters, obwohl sie im Postfach liegen. */}
|
||||
<button className="btn sm" disabled={busy} onClick={() => abrufen(q, 90)}>
|
||||
{t("mailbox.fetchOlder")}
|
||||
</button>
|
||||
<button className="btn sm ghost" title={t("common.edit")}
|
||||
onClick={() => { setForm({ ...LEER, ...q, password: "" }); setOrdner(null); }}>
|
||||
<Icon name="edit" size={15} />
|
||||
|
||||
Reference in New Issue
Block a user