wanneer u één e-mail verzendt, communiceert een afzender tegelijkertijd met een ontvanger. Maar als je met transactionele e-mails of bulkmails in je app te maken hebt, kunnen ze niet allemaal tegelijkertijd worden verzonden. E-mails worden op een SMTP-wachtrij geplaatst die tijdelijke opslag biedt voordat ze worden verwerkt. Wanneer de ontvanger in staat is om e-mail te ontvangen, worden ze verzonden. Hier, we zullen erachter te komen waarom je zou kiezen voor e-mail in de wachtrij in uw app, en hoe dit kan worden gedaan.
Wat is een e-mailwachtrij?
een e-mailwachtrij is een verplicht onderdeel van SMTP-servers. Het is een systeem dat een scala aan e-mails die wachten om te worden verwerkt voor levering creëert. Email queuing is een vorm van Message Queuing – een asynchrone service-to-service communicatie. Een message queue is bedoeld om een producerend proces te ontkoppelen van een consumerend proces. Een e-mailwachtrij ontkoppelt de afzender van de ontvanger. Het stelt hen in staat om te communiceren zonder verbonden te zijn. Als zodanig wachten de e-mails in de wachtrij op verwerking totdat de ontvanger beschikbaar is om ze te ontvangen.
u kunt een e-mailwachtrij bekijken als buffer waar de e-mails worden opgeslagen voordat ze het eindpunt bereiken. Tegelijkertijd hoeft de afzender niet elk bericht afzonderlijk te verzenden. De communicatie tussen de afzender en de ontvanger is asynchroon. Zodra de e-mails zijn opgevraagd, worden ze stap voor stap geleverd. Meestal start de SMTP-server vanaf het begin van de wachtrij en gaat deze naar voren.
hoe e-mailwachtrijen werken
stel dat u een e-mailcampagne start die 100 ontvangers bevat. Uw e-mailclient communiceert met de SMTP-server om het bericht te verzenden. De server werkt op zijn beurt samen met SMTP-servers op de hosts van de ontvangers om de e-mail door te geven. Omdat je 100 e-mails verzendt, zet de SMTP-server op je host ze in een wachtrij. De meeste mailservers gebruiken een mail transfer agent (MTA) genaamd sendmail om het eigenlijke verzenden te doen. We zullen de verschillen tussen deze twee termen in de volgende sectie bespreken. De MTA zal periodiek alle berichten in de wachtrij verzenden tot voltooiing. Als de SMTP-server van de ontvanger niet reageert, zal sendmail herhaaldelijk e-mails versturen. In dit geval verandert de e-mailwachtrij in de sendmailwachtrij. Meestal, uw e-mail client zal worden geïnformeerd over dit soort problemen. Als de sendmail wachtrij niet geleverd wordt tijdens een bepaalde termijn (bijvoorbeeld vijf dagen), zal de e-mail geretourneerd worden.
– een mailserver een computersysteem dat elektronische berichten verzendt en ontvangt met behulp van e-mailprotocollen. Voor het verschil tussen e-mailprotocollen, verwijzen naar de blogpost: SMTP vs.IMAP vs. POP3.
– Een SMTP-server is het deel van de mailserver dat uitgaande e-mail afhandelt. Dat is waar email queuing meestal wordt geïmplementeerd.
– Een mail transfer agent of MTA is een specifiek type software dat e-mail in de wachtrij plaatst en het langs een leveringsketen verplaatst totdat het een Mail Delivery Agent (MDA) raakt.
waarom e-mailwachtrijen verstopt raken en hoe te repareren dat
bij mass mailing, plaatst de SMTP-server uw uitgaande berichten automatisch in een e-mailwachtrij. Ze worden één voor één vanuit deze buffer gestuurd. Het is een regelmatig proces dat is heel gunstig voor e-mail campagnes. Tegelijkertijd kunnen e-mails in de wachtrij een probleem worden wanneer ze abnormaal lang wachten om te worden verzonden (afhankelijk van de service die u gebruikt). E-mails in de wachtrij worden niet geweigerd. Ze worden toch verstuurd, maar de levertijd kan aanzienlijk worden verkort. En hier zijn de twee belangrijkste redenen voor dat:
overschreden volume van e-mails
Sommige mailbox providers (meestal de belangrijkste zoals Gmail of Yahoo) dwingen e-mailsnelheidslimieten op IP-adressen. De limieten zijn gebaseerd op de reputatie van de afzender. Als u dit percentage hebt overschreden en te veel e-mails in de wachtrij hebt geplaatst, zal de leveringssnelheid afnemen. U kunt ook de maximale grootte van de e-mailbijlage bereiken, wat ook een remfactor kan zijn. De enige oplossing is om zo vaak mogelijk contact op te nemen met de inkomende server om de wachtrij te pushen. Wanneer een IP de limiet van e-mails overschrijdt, antwoordt de SMTP-server met een foutcode (bijvoorbeeld 421) op een opdracht. U kunt meer lezen over SMTP commando ‘ s en response codes in onze blog post. Ook is het raadzaam om te kiezen voor een dedicated IP-adres in plaats van een gedeelde optie om de snelheid van uw e-mailstroom te maximaliseren.
Spam-gerelateerde problemen
Een andere veel voorkomende reden is dat uw e-mail is verstoord door spamfilters. Geen paniek! De filters laten de e-mails geleidelijk passeren om te analyseren hoe de rest van de ontvangers reageren op het bericht. Als er langzaam vooruitgang is, is het goed. Uw e-mailcampagne wordt geobserveerd en beoordeeld. Als het vastzit, kunnen er verschillende redenen zijn, waaronder de blokkering van uw IP-adres. In dit geval, je nodig hebt om unlist jezelf en het optimaliseren van uw e-mail campagne. Lees onze blogpost over hoe om te voorkomen dat e-mails naar spam.
naast deze fundamentele oorzaken kan een wachtrij verstopt zijn om andere redenen die u met uw mailprovider moet uitzoeken.
e-mailwachtrijen beheren
een e-mailwachtrij beheren is een eenvoudige taak als u een servercontrolepaneel zoals cPanel gebruikt. Het biedt WebHostManager (WHM) om een heleboel dingen af te handelen. En als je dat niet doet? Aangezien we geen idee hebben welke mailserver je gebruikt, laten we eens kijken naar de meest gebruikte mail transfer agenten: Postfix en 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> |
e-mailwachtrij in uw app
meestal hebben SMTP-servers een ingebouwd wachtrijbeheersysteem. Dit is een optie als uw e-mailcampagne honderden ontvangers heeft. Maar soms, het is beter om een e-mail wachtrij recht in uw app. Hier zijn enkele gevallen waarin het nuttig is:
- als een gebruiker async-acties maakt zoals het verzenden van meldingen naar 1000 contacten, zou het erg traag zijn zonder gebruik te maken van wachtrij of achtergrondtaak.
- als uw app bijvoorbeeld de limiet van megabytes per maand volgt en u een melding wilt verzenden over 70% / 80% / 90% limiet bereik. Het kan mogelijk snel gebeuren voor een hoog gebruik, dus wachtrij is nodig om slechts één e-mail te sturen naar één gebruiker in plaats van het verzenden van drie e-mails per evenement.
- Als u dagelijks meer dan 10k transactionele of bulk e-mails moet versturen.
De SMTP-wachtrij is mogelijk niet voldoende om deze taken af te handelen. Daarom moet je kiezen voor een verfijnde e-mail verzenden architectuur. Het is gebaseerd op asynchrone systeem om e-mails te verzenden, die berichten in de wachtrij plaatst voordat ze de mailserver bereiken. Zo ziet het er op een hoger niveau uit:
Hier kunt u drie belangrijke processen zien:
Expanding workers implementeer bulkverzoeken voor e-mails die zijn opgeslagen in de database
als dezelfde e-mail aan meerdere ontvangers moet worden geleverd, breidt de worker bulkverzoeken uit voor elke ontvanger. Dit duwt e-mails naar de e-mailwachtrij.
E-mailwachtrij wordt geïmplementeerd via het e-mailwachtrijsysteem
Het is geen SMTP-wachtrij. E-mails worden in een wachtrij geplaatst, maar niet op de mailserver. Zonder een wachtrij, uw app zal proberen om duizenden e-mails tegelijk te verzenden. Als gevolg daarvan zou een gebrek aan geheugen of tijd om het verzoek te verwerken crash veroorzaken. Wanneer u een e-mailwachtrijsysteem zoals ActiveMQ of RabbitMQ gebruikt, worden de e-mails in de wachtrij geplaatst en in batches verwerkt.
e-mailverzender verzendt e-mails in de wachtrij naar de mailserver
Deze werknemer neemt de e-mails uit de wachtrij en stuurt ze naar de mailserver. Als het antwoord van de server negatief is, wordt de e-mail naar een foutwachtrij gepusht, die ze later opnieuw verzendt of de levering annuleert. Het is aan jou om het scenario te bepalen. Met succes geleverde e-mails kunnen worden gearchiveerd.
Test uw e-mailwachtrijsysteem met een valse SMTP-server
Als u deze geavanceerde e-mailstuurarchitectuur hebt ingesteld, vergeet dan niet om het te testen. Een nep SMTP server zoals Mailtrap is een perfecte tool hiervoor. Het is geen hulpmiddel om SMTP-server te testen. U kunt het dus niet gebruiken om de SMTP-e-mailwachtrij te testen. Maar als u uw e-mail wachtrij geà mplementeerd voordat de mailserver, dan Mailtrap kan worden gebruikt. Het biedt alle benodigde referenties zoals poort, authenticatie methode, enzovoort. Ook kunt u profiteren van kant-en-klare integraties voor de meest voorkomende tech stacks. Dus, kopieer gewoon een stukje code en plak het in uw app.
start Testing
Failsafe is een ander voordeel van het gebruik van een nep SMTP-server. Uw transactionele of marketing e-mails worden verzonden naar een nep POP3 server. Dit sluit spam voor echte gebruikers uit. Ook vermijd je problemen met betrekking tot onjuiste configuratie, authenticatie, enzovoort. Op het einde, als uw app goed functioneert, ziet u uw e-mail in de Demo inbox.
inpakken
dus, de belangrijkste afhaalmaaltijd hier is dat de e-mailwachtrij twee kanten van de medaille heeft. De eerste is positief. E-mail en SMTP queuing ontkoppelt de processen van het verzenden en ontvangen van e-mails. Dit is handig voor bulk of massa mailing gevallen. De negatieve kant is dat een e-mail in de wachtrij vaak wordt geassocieerd met een fout die het verzenden van het bericht vertraagt. Op hetzelfde moment, nu weet je hoe om te gaan met deze zorgen en profiteren van e-mail queuing op zijn hoogst.
Als u dit artikel leuk vond, deel en verspreid het woord. We zullen het echt waarderen.