Aggiorna mail-receiver alla versione ufficiale

Se sei arrivato qui perché hai notato questo messaggio nella tua Admin Dashboard:

Abbiamo rilevato una versione obsoleta di mail-receiver..

sei nel posto giusto.

Per favore, accedi via SSH al tuo server Discourse ed esegui i seguenti due comandi per aggiornare mail-receiver:

sed -i 's/mail-receiver:.*/mail-receiver:release/' /var/discourse/containers/mail-receiver.yml
/var/discourse/launcher rebuild mail-receiver

Per ulteriori dettagli, continua a leggere.

Perché dobbiamo aggiornare mail-receiver?

Dobbiamo aggiornare mail-receiver a una versione più recente che non utilizzi un metodo di autenticazione API deprecato.

Quando hai configurato inizialmente mail-receiver, ti è stato chiesto di creare un file containers/mail-receiver.yml contenente un numero di versione hardcoded:

base_image: discourse/mail-receiver:x.x.x

Per ricevere aggiornamenti futuri senza dover aggiornare manualmente questo numero, puoi impostare il numero di versione su release invece di specificare una versione specifica.

Modifica /var/discourse/containers/mail-receiver.yml per utilizzare questa immagine base:

base_image: discourse/mail-receiver:release

Se lo desideri, puoi semplicemente eseguire questo comando:

sed -i 's/mail-receiver:.*/mail-receiver:release/' /var/discourse/containers/mail-receiver.yml

per modificare il file per te.

Poi puoi eseguire:

/var/discourse/launcher rebuild mail-receiver

per aggiornare all’ultima versione di mail-receiver.

21 Mi Piace

Grazie per la guida sull’aggiornamento @blake! Tuttavia, per qualche motivo non sembra che io abbia il file mail-receiver.yml in /var/discourse/containers/.

root@nomadgate-community-eu:/var/discourse# sed -i 's/mail-receiver:.*/mail-receiver:release/' /var/discourse/containers/mail-receiver.yml
sed: impossibile leggere /var/discourse/containers/mail-receiver.yml: File o directory non esistente

Per sicurezza, ho eseguito ls per verificare cosa c’è effettivamente lì:

root@nomadgate-community-eu:/var/discourse/containers# ls
app.yml  app.yml.save

Hai idea del perché non ci sia il file mail-receiver.yml e di cosa possa fare al riguardo? Mail Receiver sembra funzionare per la mia community, anche senza il file…

EDIT: Ripensandoci, non credo di aver mai configurato “mail-receiver”. Sto usando la funzione di webhook di analisi in entrata di SendGrid, quindi perché vedo questo errore nella dashboard di Discourse?

Tuttavia, per farlo funzionare sto passando le credenziali API come parametri URL in questo modo: /admin/email/handle_mail?api_key=xxx&api_username=xxx — questo smetterà di funzionare? E se sì, esiste un altro modo per mantenere il supporto per i messaggi in entrata tramite SendGrid?

2 Mi Piace

Concordo: non vedo alcun file containers/mail-receiver.yml nella mia installazione di Discourse. Finora non ho rilevato alcun effetto negativo.

@dltj Anche tu stai usando SendGrid o qualcosa di simile?

La questione è questa: se non hai installato il ricevitore di posta, non hai bisogno di aggiornarlo.

2 Mi Piace

Certo, ma sto cercando di raccogliere quante più informazioni possibile, poiché potrebbero esserci modifiche alle chiamate API basate sui parametri di query, a seconda del supporto di SendGrid o di altri provider che è possibile configurare per utilizzare questo endpoint.

3 Mi Piace

No, non sto utilizzando SendGrid: questa installazione di Discourse risale a diversi anni fa e all’epoca ho scritto una funzione AWS Lambda che utilizzava l’API /admin/email/handle_mail per inoltrare le email in arrivo a Discourse. Quel script Lambda era scritto in Python 2.7, quindi è ora di riscriverlo… probabilmente è il momento di valutare quali opzioni ho oggi.

Stranamente, il messaggio “Abbiamo rilevato una versione obsoleta di mail-receiver…” non era più visibile sulla bacheca di amministrazione di Discourse. Strano. Fatto salvo: il messaggio è ancora lì. Forse è scomparso perché l’installazione di Discourse non ha ricevuto messaggi in arrivo per alcuni giorni sull’endpoint /admin/email/handle_mail, ma poi è apparso quando ho inviato il messaggio di prova?

Ho appena verificato: la ricezione di email in arrivo per Discourse funziona ancora.

1 Mi Piace

Esatto. Scade dopo 24 ore se non ha ricevuto alcun messaggio.

2 Mi Piace

Ah, capisco. Quindi l’avviso nella dashboard non è legato all’uso di ‘mail-receiver’… ma al fatto che sto utilizzando i parametri api_key e api_username, ormai deprecati, come parametri di query per l’endpoint API. Ok… è semplice da risolvere. Grazie per i suggerimenti.

3 Mi Piace