Quando invii un’e-mail, un mittente interagisce con un destinatario contemporaneamente. Ma quando hai a che fare con e-mail transazionali o messaggi di massa nella tua app, non possono essere inviati tutti allo stesso tempo. Le e-mail vengono inserite in una coda SMTP che fornisce archiviazione temporanea prima dell’elaborazione. Quando il destinatario è in grado di ricevere e-mail, vengono inviati. Qui, scopriremo perché opteresti per l’accodamento delle e-mail nella tua app e come questo può essere fatto.
Che cos’è una coda di posta elettronica?
Una coda di posta elettronica è un componente obbligatorio dei server SMTP. Si tratta di un sistema che crea una serie di e-mail che sono in attesa di essere elaborati per la consegna. L’accodamento e – mail è una forma di accodamento dei messaggi, una comunicazione asincrona da servizio a servizio. Una coda di messaggi ha lo scopo di disaccoppiare un processo di produzione da uno di consumo. Una coda di posta elettronica disaccoppia il mittente dal destinatario. Permette loro di comunicare senza essere connessi. Pertanto, le e-mail in coda attendono l’elaborazione finché il destinatario non è disponibile a riceverle.
Puoi guardare una coda di posta elettronica come un buffer in cui le e-mail vengono archiviate prima che raggiungano l’endpoint. Allo stesso tempo, il mittente non ha bisogno di inviare ogni messaggio separatamente. La comunicazione tra il mittente e il destinatario è asincrona. Una volta che le e-mail sono state accodate, vengono consegnate passo dopo passo. Di solito, il server SMTP inizia dall’inizio della coda e va avanti.
Come funzionano le code email
Supponiamo che tu stia lanciando una campagna email che contiene 100 destinatari. Il client di posta elettronica interagisce con il server SMTP per inviare il messaggio. Il server, a sua volta, interagisce con i server SMTP sugli host dei destinatari per inoltrare l’e-mail. Dal momento che stai inviando 100 e-mail, il server SMTP sul tuo host li mette in coda. La maggior parte dei server di posta utilizza un mail Transfer agent (MTA) chiamato sendmail per effettuare l’invio effettivo. Toccheremo le differenze tra questi due termini nella prossima sezione. L’MTA invierà periodicamente tutti i messaggi in coda fino al completamento. Se il server SMTP del destinatario non risponde, sendmail invierà ripetutamente e-mail. In questo caso, la coda di posta elettronica si trasforma nella coda di sendmail. Di solito, il tuo client di posta sarà avvisato di questo tipo di problema. Se la coda di sendmail non viene consegnata durante un periodo specifico (ad esempio, cinque giorni), l’e-mail verrà restituita.
– Un server di posta un sistema informatico che invia e riceve messaggi elettronici utilizzando i protocolli di posta elettronica. Per la differenza tra i protocolli di posta elettronica, fare riferimento al post del blog: SMTP vs. IMAP vs. POP3. r– – Un server SMTP è la parte del server di posta che gestisce la posta in uscita. Ecco dove l’accodamento delle e-mail è per lo più implementato. r– – Un mail Transfer agent o MTA è un tipo specifico di software che mette in coda e-mail e lo sposta lungo una catena di consegna fino a quando non colpisce un Mail Delivery Agent (MDA).
Perché le code di posta elettronica si intasano e come risolverlo
Quando si esegue l’invio di massa, il server SMTP inserisce automaticamente i messaggi in uscita in una coda di posta elettronica. Vengono inviati uno per uno da questo buffer. Si tratta di un processo regolare che è molto utile per le campagne di posta elettronica. Allo stesso tempo, le e-mail in coda possono diventare un problema quando sono in attesa di essere inviate per un tempo anormalmente lungo (dipende dal servizio utilizzato). Le email in coda non verranno rimbalzate. Verranno inviati comunque, ma il tempo di consegna può essere significativamente ridotto. E qui ci sono i due motivi principali per questo:
Superato il volume di e-mail
Alcuni provider di cassette postali (per lo più i principali come Gmail o Yahoo) impongono limiti di velocità di posta elettronica sugli indirizzi IP. I limiti si basano sulla reputazione del mittente. Se hai superato questa velocità e hai messo in coda troppe e-mail, la velocità di consegna diminuirà. Si può anche raggiungere la dimensione massima allegato e-mail, che può essere un fattore di freno pure. L’unica soluzione è contattare il server in arrivo il più frequentemente possibile per spingere la coda. Ogni volta che un IP supera il limite delle e-mail, il server SMTP risponde con un codice di errore (ad esempio, 421) a qualsiasi comando. Puoi leggere di più sui comandi SMTP e sui codici di risposta nel nostro post sul blog. Inoltre, si consiglia di optare per un indirizzo IP dedicato invece di un’opzione condivisa per massimizzare la velocità del flusso di posta elettronica.
Problemi relativi allo spam
Un altro motivo comune è che la tua email è stata arrestata dai filtri antispam. Niente panico! I filtri consentiranno alle e-mail di passare gradualmente per analizzare come il resto dei destinatari reagisce al messaggio. Se ci sono progressi lenti, va bene. La tua campagna e-mail viene osservata e valutata. Se è bloccato, potrebbero esserci diversi motivi tra cui il blocco del tuo indirizzo IP. In questo caso, è necessario disinstallare te stesso e ottimizzare la tua campagna e-mail. Leggi il nostro post sul blog su come evitare che le email vadano allo spam.
Oltre a queste cause fondamentali, una coda può essere intasata per altri motivi che dovresti capire con il tuo provider di posta.
Gestire le code di posta elettronica
Gestire una coda di posta elettronica è un compito facile se si utilizza un pannello di controllo del server come cPanel. Fornisce WebHostManager (WHM) per gestire un sacco di cose. E se non lo facessi? Dal momento che non abbiamo idea di quale server di posta si utilizza, diamo un’occhiata comandi per gli agenti di trasferimento di posta più utilizzati: Postfix e Exim.
Command | Postfix | Exim |
List the queued emails | postqueue -p |
exim -bp |
Reattempt delivery of all queued emails | postqueue -f |
exim -q -v |
Remove all queued emails | postsuper -d ALL |
exiqgrep -z -i | xargs exim -Mrm |
Remove a particular queued email | postsuper -d "Queue ID”postsuper -d <message-id> |
exim -Mrm <message-id> |
coda Email nella tua app
di Solito, SMTP server hanno un built-in sistema di gestione delle code. Questa è un’opzione se la tua campagna email ha centinaia di destinatari. Ma a volte, è meglio avere una coda di posta elettronica direttamente nella tua app. Ecco alcuni casi in cui è utile:
- Se un utente sta facendo azioni asincrone come l’invio di notifiche a 1000 contatti, sarebbe molto lento senza utilizzare la coda o l’attività in background.
- Se la vostra applicazione è il monitoraggio, diciamo, il limite di megabyte al mese, e si desidera inviare una notifica di circa il 70%/80%/90% portata limite. Può potenzialmente accadere rapidamente per un utilizzo elevato, quindi è necessaria la coda per inviare solo una e-mail a un utente invece di inviare tre e-mail per evento.
- Se avete bisogno di inviare più di 10 K transazionale o di massa e-mail ogni giorno.
La coda SMTP potrebbe non essere sufficiente per gestire queste attività. Ecco perché dovresti optare per un’architettura di invio di e-mail raffinata. Si basa su un sistema asincrono per inviare e-mail,che accoderà i messaggi prima che raggiungano il server di posta. Ecco come potrebbe apparire a un livello superiore:
Qui potete vedere tre processi principali:
in Espansione lavoratori implementare la massa di richieste per e-mail memorizzati nel database
Se la stessa e-mail sta per essere consegnato a più destinatari, il lavoratore si espande di massa richieste per ogni destinatario. Questo spinge le email alla coda di posta elettronica.
La coda e-mail è implementata tramite il sistema di accodamento e-mail
Non è una coda SMTP. Le e-mail vengono inserite in una coda ma non sul server di posta. Senza una coda, la tua app proverà a inviare migliaia di email contemporaneamente. Di conseguenza, una mancanza di memoria o tempo per elaborare la richiesta causerebbe crash. Quando si utilizza un sistema di accodamento delle e-mail come ActiveMQ o RabbitMQ, le e-mail vengono accodate ed elaborate in batch.
Mail sending worker invia e-mail in coda al server di posta
Questo worker prende effettivamente le e-mail dalla coda e le invia al server di posta. Se la risposta del server è negativa, l’e-mail viene inviata a una coda di errori, che li invia nuovamente in un secondo momento o annulla la consegna. Sta a voi per impostare lo scenario. Le e-mail consegnate con successo possono essere archiviate.
Prova il tuo sistema di accodamento e-mail con un server SMTP falso
Dopo aver impostato questa architettura avanzata di invio di e-mail, non dimenticare di testarlo. Un server SMTP falso come Mailtrap è uno strumento perfetto per questo. Non è uno strumento per testare il server SMTP. Quindi, non sarai in grado di usarlo per testare l’accodamento delle e-mail SMTP. Ma se hai la tua coda di posta elettronica implementata prima del server di posta, allora Mailtrap può essere utilizzato. Fornisce tutte le credenziali necessarie come porta, metodo di autenticazione e così via. Inoltre, puoi beneficiare di integrazioni pronte all’uso per gli stack tecnologici più comuni. Quindi, basta copiare un pezzo di codice e incollarlo nella tua app.
Avviare il test
Failsafe è un altro vantaggio di utilizzare un server SMTP falso. Le tue e-mail transazionali o di marketing verranno trasmesse a un server POP3 falso. Ciò esclude qualsiasi spam agli utenti reali. Inoltre, si evitano eventuali problemi relativi a configurazione impropria, autenticazione e così via. Alla fine, se la tua app funziona bene, vedrai la tua email nella casella di posta demo.
Avvolgendo
Quindi, la chiave da asporto qui è che la coda di posta elettronica ha due lati della medaglia. Il primo è positivo. E-mail e SMTP accodamento disaccoppia i processi di invio e ricezione di e-mail. Questo è utile per i casi di invio di massa o di massa. Il lato negativo è che un’e-mail in coda è spesso associata a un errore che ritarda l’invio del messaggio. Allo stesso tempo, ora sapete come affrontare queste preoccupazioni e approfittare di e-mail in coda al massimo.
Se ti è piaciuto questo articolo, si prega di condividere e diffondere la parola. Lo apprezzeremo davvero.