Invio massivo di email senza duplicati

Immagina che un membro abbia selezionato gruppi e sottocategorie di suo interesse.

Voglio inviare un annuncio a coloro che hanno selezionato uno di questi gruppi e sottocategorie.

Esempio: In una città composta dalla città principale globale, diversi quartieri e materie.

L’utente può selezionare:

  • Una materia specifica (che è un gruppo generale),
  • Un gruppo nel suo quartiere per questa materia,
  • Un gruppo in altri due quartieri per questa materia,
  • Una seconda materia specifica (che è un gruppo generale),
  • Tutti i gruppi in tutti i quartieri per questa materia,
  • Il gruppo principale per la città principale;

Se desidero inviare un’e-mail a uno o più gruppi o sottocategorie in questi gruppi, alcuni utenti potrebbero ricevere più di un’e-mail dello stesso annuncio, specialmente se la persona ha selezionato il gruppo della città principale che inoltrerebbe le informazioni da tutti i quartieri, più alcuni sottogruppi, ecc.

La domanda: Come posso preparare una mailing list che tocchi più gruppi e sottocategorie di destinazione, senza duplicati, e inviare quel messaggio?

  1. Ho bisogno di usare uno script esterno?

  2. Ho bisogno di un elaboratore di posta elettronica esterno?

Grazie

Marc

Se si richiede una consegna garantita priva di duplicati attraverso insiemi arbitrari di gruppi e categorie, è necessario:

  • Esportare le liste di utenti dai gruppi o dalle categorie di destinazione.
  • Unire e deduplicare queste liste, manualmente o tramite uno script.
  • Utilizzare un elaboratore di posta elettronica esterno per inviare il messaggio alla lista deduplicata.

Questo è il modo più robusto per garantire che gli utenti non ricevano lo stesso annuncio più volte.

Grazie, sai se possiamo automatizzare ciò, ad esempio richiedendo all’API di ricevere messaggi per ogni nuova registrazione/ritiro di un membro o selezione di gruppo/categoria, e ricevere solo le nuove modifiche OPPURE (meno buono) l’intera lista con il loro gruppo/categoria, che può essere richiesta da un programma Python? (Posso gestire la programmazione in Python). La domanda riguarda più la comunicazione automatica tra Discourse e Python E Python e l’elaboratore di posta elettronica.

Discourse fornisce una robusta API REST che ti consente di:

  • Elencare tutti gli utenti, i gruppi e le appartenenze utente-gruppo
  • Monitorare le nuove registrazioni degli utenti e le azioni di adesione/uscita dai gruppi (tramite polling o webhook)
  • Recuperare le configurazioni di appartenenza alle categorie

Puoi interrogare l’elenco completo o tentare di monitorare le modifiche recenti. Per un rilevamento completo delle modifiche incrementali, potrebbe essere necessario implementare controlli basati sul tempo e gestire le differenze a livello locale. L’autenticazione viene gestita tramite intestazioni HTTP (Api-Key, Api-Username).

Tuttavia, per un controllo più efficiente e integrato, consiglio di creare un plugin Discourse personalizzato. Un plugin viene eseguito all’interno dell’ambiente del server Discourse e fornisce un accesso diretto ai dettagli interni di Discourse, come:

  • Aggiornamenti delle appartenenze di utenti, gruppi e categorie
  • Hook per eventi del ciclo di vita per registrazioni e modifiche ai gruppi
  • Accesso diretto alle API interne e al database di Discourse

Questo approccio ti offre capacità in tempo reale e maggiore flessibilità per implementare flussi di lavoro automatizzati come la gestione della posta elettronica o la segmentazione degli utenti.

Possiamo creare un plugin che funzioni sulla nostra istanza anche se è ospitata da Discourse, o dobbiamo ospitarlo noi?

Se si tratta di un plugin non ufficiale, penso che tu possa installarlo solo sul piano Enterprise, altrimenti dovrai ospitarlo tu stesso.

  • Genera elenchi dinamici (dati utente/gruppo/categoria) e visualizzali o memorizzali all’interno di Discourse.
  • Esporta i dati in un file o crea report amministrativi scaricabili.
  • Effettua richieste HTTP(S) a un altro server (ad esempio, invia aggiornamenti dell’elenco utenti al tuo strumento Python/email).
  • Attiva webhook, pianifica attività o integra direttamente con API esterne, tutto dall’interno di Discourse, senza richiedere il polling.

@EMHmark7 sei riuscito a capire come vuoi far funzionare questa cosa?

In Discourse, un modo per ottenere ciò che desideri è creare categorie e consentire ai membri della community di “iscriversi” a tali categorie scegliendo il livello di notifica “watch”. Le opzioni Default categories watching o Default categories watching first post sono utili per avere una categoria di annunci sul tuo sito, per raggiungere tutti sul tuo sito.

Credo ci siano modi per gestire quanto sopra in base all’appartenenza a un gruppo o ad altri criteri, ma non lo faccio da un po’ di tempo: forse qualcun altro ha una ricetta da condividere.

Un altro approccio è inviare messaggi privati direttamente ai gruppi: se invii un messaggio privato a una manciata di gruppi e lo stesso membro fa parte di più gruppi, non ci saranno duplicazioni.

Ma mi sembra che tu possa essere alla ricerca di uno strumento diverso, se ciò che desideri non è un forum o una community in cui le persone accedono per partecipare alle discussioni, ma piuttosto un insieme di mailing list che inviano email.

Tutto questo può risiedere nel codice al di fuori di Discourse, quindi non devi installarlo. Se stai usando WordPress, puoi ottenere molto di questo gratuitamente usando GitHub - discourse/wp-discourse: WordPress plugin that lets you use Discourse as the community engine for a WordPress blog, e poi usare un altro plugin di WordPress per gestire la parte della mailing list.