När du skickar ett e-postmeddelande interagerar en avsändare med en mottagare samtidigt. Men när du hanterar transaktionella e-postmeddelanden eller massmeddelanden i din app kan de inte alla skickas samtidigt. E-postmeddelanden läggs på en SMTP-kö som ger tillfällig lagring före bearbetning. När mottagaren kan ta emot e-post skickas de. Här kommer vi att ta reda på varför du skulle välja e-postkö i din app och hur detta kan göras.
Vad är en e-postkö?
en e-postkö är en obligatorisk komponent i SMTP-servrar. Det är ett system som skapar en rad e-postmeddelanden som väntar på att behandlas för leverans. E-postkö är en form av Meddelandekö – en asynkron service-till-service-kommunikation. En meddelandekö är avsedd att koppla bort en producerande process från en konsumerande. En e-postkö kopplar bort avsändaren från mottagaren. Det gör att de kan kommunicera utan att vara anslutna. Som sådan väntar de köade e-postmeddelandena på bearbetning tills mottagaren är tillgänglig för att ta emot dem.
Du kan titta på en e-postkö som en buffert där e-postmeddelandena lagras innan de träffar slutpunkten. Samtidigt behöver avsändaren inte skicka varje meddelande separat. Kommunikationen mellan avsändaren och mottagaren är asynkron. När e-postmeddelandena har köats levereras de steg för steg. Vanligtvis börjar SMTP-servern från början av kön och går framåt.
hur e-postköer fungerar
låt oss säga att du startar en e-postkampanj som innehåller 100 mottagare. Din e-postklient interagerar med SMTP-servern för att skicka meddelandet. Servern interagerar i sin tur med SMTP-servrar på mottagarnas värdar för att vidarebefordra e-postmeddelandet. Eftersom du skickar 100 e-postmeddelanden sätter SMTP-servern på din värd dem i kö. De flesta e-postservrar använder en Mail transfer agent (mta) som heter sendmail för att göra själva sändningen. Vi kommer att beröra skillnaderna mellan dessa två termer i nästa avsnitt. MTA skickar regelbundet alla meddelanden i kö tills de är färdiga. Om mottagarens SMTP-server inte svarar skickar sendmail återkommande e-postmeddelanden. I det här fallet förvandlas e-postkön till sendmail-kön. Vanligtvis kommer din e-postklient att meddelas om den här typen av problem. Om sendmail-kön inte levereras under en viss period (till exempel fem dagar) kommer e-postmeddelandet att returneras.
– en e-postserver ett datorsystem som skickar och tar emot elektroniska meddelanden med e-postprotokoll. För skillnaden mellan e-postprotokoll, hänvisa till blogginlägget: SMTP vs. IMAP vs. POP3.
– en SMTP-server är den del av e-postservern som hanterar utgående e-post. Det är där e-postköer oftast implementeras. r– – en postöverföringsagent eller MTA är en specifik typ av programvara som köar e-post och flyttar den längs en leveranskedja tills den träffar en Postleveransagent (MDA).
varför e-postköer blir igensatta och hur man åtgärdar det
När du gör massutskick sätter SMTP-servern dina utgående meddelanden automatiskt i en e-postkö. De skickas en efter en från denna buffert. Det är en vanlig process som är ganska fördelaktig för e-postkampanjer. Samtidigt kan e-postmeddelanden i kö bli ett problem när de väntar på att skickas under onormalt lång tid (beror på vilken tjänst du använder). Köade e-postmeddelanden kommer inte att studsas. De kommer att skickas ändå, men tiden för leveransen kan minskas betydligt. Och här är de två grundläggande orsakerna till det:
överskridit volymen av e-post
vissa postlådeleverantörer (mestadels de stora som Gmail eller Yahoo) tillämpar e-postgränser på IP-adresser. Gränserna är baserade på avsändarens rykte. Om du överskred denna kurs och köade för många e-postmeddelanden kommer leveranshastigheten att minska. Du kan också nå den maximala e-postbilagans storlek, vilket också kan vara en bromsfaktor. Den enda lösningen är att kontakta den inkommande servern så ofta som möjligt för att driva kön. När en IP överskrider gränsen för e-postmeddelanden svarar SMTP-servern med en felkod (till exempel 421) på något kommando. Du kan läsa mer om SMTP-kommandon och svarskoder i vårt blogginlägg. Det rekommenderas också att välja en dedikerad IP-adress istället för ett delat alternativ för att maximera hastigheten på ditt e-postflöde.
Spamrelaterade problem
En annan vanlig orsak är att din e-post har blivit busted av spamfilter. Få inte panik! Filtren låter e-postmeddelandena gradvis passera för att analysera hur resten av mottagarna reagerar på meddelandet. Om det går långsamt är det okej. Din e-postkampanj observeras och utvärderas. Om det sitter fast kan det finnas olika orsaker, inklusive blockering av din IP-adress. I det här fallet måste du avlista dig själv och optimera din e-postkampanj. Läs vårt blogginlägg om hur man undviker att e-postmeddelanden går till spam.
förutom dessa grundläggande orsaker kan en kö vara igensatt av andra skäl som du bör räkna ut med din e-postleverantör.
hantera e-postköer
hantera en e-postkö är en enkel uppgift om du använder en serverkontrollpanel som cPanel. Det ger WebHostManager (WHM) för att hantera en massa saker. Och om du inte gör det? Eftersom vi inte har någon aning om vilken e-postserver du använder, låt oss kolla in kommandon för de mest använda e-postöverföringsagenterna: Postfix och 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-postkö i din app
vanligtvis har SMTP-servrar ett inbyggt köhanteringssystem. Detta är ett alternativ om din e-postkampanj har hundratals mottagare. Men ibland är det bättre att ha en e-postkö direkt i din app. Här är några fall när det är fördelaktigt:
- Om en användare gör async-åtgärder som att skicka meddelanden till 1000 kontakter, skulle det vara riktigt långsamt utan att använda kö eller bakgrundsuppgift.
- om din app spårar, låt oss säga, gränsen för megabyte per månad, och du vill skicka ett meddelande om 70%/80%/90% gräns räckvidd. Det kan potentiellt hända snabbt för viss hög användning, så kö behövs för att bara skicka ett e-postmeddelande till en användare istället för att skicka tre e-postmeddelanden per händelse.
- Om du behöver skicka mer än 10k Transaktions-eller massmail varje dag.
SMTP-kön kanske inte räcker för att hantera dessa uppgifter. Det är därför du bör välja en förfinad e-post skicka arkitektur. Den är baserad på asynkron system för att skicka e-post, som kommer att köa meddelanden innan de når e-postservern. Så kan det se ut på en högre nivå:
Här kan du se tre stora processer:
expanderande arbetare implementerar massförfrågningar för e-postmeddelanden som lagras i databasen
om samma e-post ska levereras till flera mottagare, kommer den Worker expanderar bulk förfrågningar för varje mottagare. Detta driver e-postmeddelanden till e-postkön.
E-postkön implementeras via e-postkösystemet
det är inte en SMTP-kö. E-postmeddelanden läggs i kö men inte på e-postservern. Utan kö kommer din app att försöka skicka ut tusentals e-postmeddelanden samtidigt. Som ett resultat skulle brist på minne eller tid att behandla begäran orsaka krasch. När du använder ett e-postkösystem som ActiveMQ eller RabbitMQ står e-postmeddelandena i kö och bearbetas i omgångar.
mail sending worker skickar köade e-postmeddelanden till e-postservern
den här arbetaren tar faktiskt e-postmeddelandena från kön och skickar dem till e-postservern. Om serverns svar är negativt trycks e-postmeddelandet till en felkö, som antingen skickar dem senare eller avbryter leveransen. Det är upp till dig att ställa in scenariot. Framgångsrikt levererade e-postmeddelanden kan arkiveras.
Testa ditt e-postkösystem med en falsk SMTP-server
När du har ställt in den här avancerade e-postskickningsarkitekturen, glöm inte att testa den. En falsk SMTP-server som Mailtrap är ett perfekt verktyg för detta. Det är inte ett verktyg för att testa SMTP-server. Så, du kommer inte att kunna använda den för att testa SMTP e kö. Men om du har din e-postkö implementerad före e-postservern kan Mailtrap användas. Det ger alla nödvändiga referenser som port, autentiseringsmetod och så vidare. Du kan också dra nytta av färdiga integrationer för de flesta vanliga tekniska stackar. Så kopiera bara en bit kod och klistra in den i din app.
börja testa
felsäker är en annan fördel med att använda en falsk SMTP-server. Dina Transaktions-eller marknadsföringsemail kommer att överföras till en falsk POP3-server. Detta utesluter all skräppost till riktiga användare. Du undviker också problem relaterade till felaktig konfiguration, autentisering och så vidare. I slutändan, om din app fungerar bra, ser du din e-post i Demo-inkorgen.
förpackning upp
så, nyckeln takeaway här är att e-postkön har två sidor av myntet. Den första är positiv. E-post och SMTP kö kopplar processerna för att skicka och ta emot e-post. Detta är användbart för bulk eller massutskick fall. Den negativa sidan är att ett e-postmeddelande i kö ofta är förknippat med något fel som försenar meddelandet. Samtidigt vet du nu hur du ska hantera dessa problem och dra nytta av e-postkö som mest.
om du gillade den här artikeln, vänligen dela och sprida ordet. Vi kommer verkligen att uppskatta det.