Uno dei miei utenti ha segnalato che in diversi casi mancano le ultime una o due righe dei suoi post, effettuati via email.
I post erano ben al di sotto del limite di caratteri e non ci sono parole censurate, avete qualche idea su cosa potrebbe causare questo? Non vedo nulla nei log al riguardo.
Guardando i dati grezzi nella tabella incoming_emails, il testo mancante era sicuramente nell’email così come ricevuta, solo che non è entrato nel post formattato. Si tratta di una risposta, non dell’inizio di un nuovo argomento.
Ho visto che succede quando il parser non riesce a decidere se le ultime righe sono una firma. Quelle risposte avevano una tipografia strana come quella? ---?
Nessuno che ho visto, ma il campo ‘raw’ nella tabella incoming_emails è un po’ strano, tutte le parole sono ammassate insieme senza spazi o punteggiatura.
Ecco un breve estratto:
nolongertalkingtothatneighborHellBienenWeberMark
Ciò che manca è tutto ciò che inizia con la parola ‘Hell’. Il testo formattato ha il punto dopo ‘neighbor’ ma niente dopo.
Penso di aver capito cosa è successo, ma non necessariamente come evitarlo in futuro.
Catturo le email in arrivo prima di salvarle nella casella di posta letta dal container Discourse, e ho il messaggio originale in questione da questo utente.
L’email ha un segmento text/plain e un segmento text/html.
L’ultima riga (mancante) del suo messaggio si trova nel segmento text/plain ma non nel segmento text/html, ed è quest’ultimo che Discourse utilizza per creare un post.
Quindi, qualunque cosa stia succedendo per far sì che le righe vengano eliminate, sembra che stia succedendo prima che quelle email arrivino al mio server.