Moodul 6 · 6.1
Bounce lugemine
Moodul 6: Tagasitulnud kirjad ja probleemide lahendamine · Lugemisaeg: 11 minutit
Eesmärk: Pärast seda tundi oskad analüüsida kohale toimetamata jäänud kirja veateadet (bounce): milline server vea andis, millisele aadressile, mida kood tähendab ning kas tegemist on ajutise või lõpliku veaga.
Põhimõisted: bounce, Mailer-Daemon, delivery status notification (DSN, RFC 3464), Reporting-MTA, Remote-MTA, Final-Recipient, Action (failed, delayed), Status, Diagnostic-Code, Will-Retry-Until, vastuskood (RFC 5321), laiendatud olekukood X.Y.Z (RFC 3463), viivitusteade, backscatter
Mis on bounce?
Kui meiliserver ei suuda kirja kohale toimetada, saadab ta teate saatjale tagasi. Seda nimetatakse bounce'iks (ehk non-delivery report, NDR). See saabub saatjalt nagu Mailer-Daemon@..., MAILER-DAEMON või Mail Delivery System, pealkirjaga näiteks:
Mail delivery failed: returning message to senderUndelivered Mail Returned to SenderDelivery Status Notification (Failure)Warning: message ... delayed 24 hours(see ei ole bounce, vaid viivitusteade, vt allpool)
Paljud viskavad sellise teate kohe minema või ehmuvad inglisekeelsest tekstist. Kahju, sest bounce ütleb peaaegu alati täpselt, mis valesti läks. Pead ainult teadma, kust vaadata.
Bounce'il on alati tühi envelope sender (Return-Path: <>). See on tahtlik: bounce bounce'ile võiks muidu tekitada lõputu ahela (RFC 5321).
Kes kirja tagasi lükkas?
Kiri läbib vähemalt kaks serverit: sinu teenusepakkuja oma ja saaja oma. Bounce võib tekkida kahes olukorras:
- Vastuvõttev server lükkab kirja tagasi SMTP-vestluse ajal (tund 1.2), näiteks pärast
RCPT TO(aadress on tundmatu) või pärast sisu kontrollimist (rämpspost või DMARC). Sinu enda server saab selle tagasilükkamise ja koostab sulle bounce'i. Viga tuleb siis saajalt, bounce aga sinu enda serverilt. - Sinu enda server loobub, näiteks seetõttu, et saaja ei olnud mitu päeva kättesaadav, või seetõttu, et oled ise mingi piiri ületanud.
See vahe on oluline: esimesel juhul pead teada saama, mis saajale ei meeldinud, teisel juhul on probleem lähemal, sinu enda poolel.
Inimloetav osa
Ülemises osas on tekst inimestele. See erineb meilitarkvara lõikes, kuid sisaldab peaaegu alati samu asju:
A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:
pieter.devries@example.net
host mx1.example.net [198.51.100.20]
SMTP error from remote mail server after RCPT TO:<pieter.devries@example.net>:
550 5.1.1 <pieter.devries@example.net>: Recipient address rejected: User unknownLoe seda nii:
| Osa | Mida see ütleb |
|---|---|
permanent error | Lõplik: server ei proovi uuesti |
pieter.devries@example.net | Aadress, millega läks valesti (mitme saaja korral: ainult see) |
host mx1.example.net [198.51.100.20] | Saaja server, kellega räägiti |
SMTP error from remote mail server | Viga tuli saajalt, mitte sinu enda serverilt |
after RCPT TO | Mis hetkel vestluses: siin aadressi edastamise juures |
550 5.1.1 ... User unknown | Saaja kood ja tekst: see aadress ei eksisteeri |
Masinloetav osa: DSN
Teksti all on tavaliselt programmidele mõeldud osa, delivery status notification (RFC 3464). See on alati üles ehitatud samamoodi, mis teeb selle kergesti loetavaks:
Reporting-MTA: dns; mail.hosting.example
Action: failed
Final-Recipient: rfc822;pieter.devries@example.net
Status: 5.1.1
Remote-MTA: dns; mx1.example.net
Diagnostic-Code: smtp; 550 5.1.1 <pieter.devries@example.net>: Recipient address rejected: User unknown| Väli | Tähendus |
|---|---|
Reporting-MTA | Server, kes selle bounce'i koostas (tavaliselt sinu enda saatev server) |
Final-Recipient | Aadress, millest jutt käib |
Action | failed (ebaõnnestus, lõplik), delayed (viivitus, proovitakse veel), vahel delivered või relayed |
Status | Laiendatud olekukood, vt allpool |
Remote-MTA | Teine pool, kes vastuse andis |
Diagnostic-Code | Selle serveri sõna-sõnaline vastus: siin on tegelik põhjus |
Will-Retry-Until | delayed puhul: milliseni server jätkab proovimist |
Kõige allosas on algne kiri või ainult selle päised. Sealt näed, milline kiri see oli ning millist saatja aadressi ja millist Return-Path'i kasutati. See on vahel lahenduse võti (vt DMARC-juhtumit ülesandes).
Koodide lugemine
Koode on kahte liiki ja tavaliselt on bounce'is mõlemad.
Vastuskood (RFC 5321): kolm numbrit, näiteks 550 või 451. Esimene number on kõige olulisem:
| Algab numbriga | Tähendus | Mida saatev server teeb |
|---|---|---|
2 | Õnnestus | Rohkem midagi ei tee, kiri on vastu võetud |
4 | Ajutine viga | Säilitab kirja ja proovib hiljem uuesti |
5 | Lõplik viga | Loobub ja saadab bounce'i |
Laiendatud olekukood (RFC 3463): kolm punktidega eraldatud numbrit, näiteks 5.1.1 või 4.7.500. Esimene number on jälle 2, 4 või 5. Teine number ütleb, kus probleem asub:
| Teine number | Teema | Näited |
|---|---|---|
X.1 | Aadress | 5.1.1 aadress ei eksisteeri, 5.1.2 domeen ei eksisteeri |
X.2 | Mailbox | 5.2.2 / 4.2.2 mailbox on täis, 5.2.1 mailbox on välja lülitatud |
X.3 | Meilisüsteem | 5.3.4 kiri liiga suur |
X.4 | Võrk ja marsruut | 4.4.1 vastust ei tulnud, 4.4.7 liiga kaua järjekorras, 5.4.4 marsruuti pole |
X.5 | Protokoll | 5.5.1 kehtetu käsk |
X.6 | Sisu | 5.6.0 probleem sisu või kodeeringuga |
X.7 | Turvalisus ja reeglid | 5.7.1 tagasi lükatud, 5.7.26 autentimata (Gmail), 5.7.509 DMARC (Microsoft) |
Kolmas number on täpne põhjus. Suured teenusepakkujad kasutavad selleks oma numbreid, näiteks Gmail numbritega 5.7.25 kuni 5.7.30 ja Microsoft numbritega 4.7.500 ja 5.7.509. Need on nende oma dokumentatsioonis (tund 6.2).
Rusikareegel: kood, mis algab 5-ga ja mille keskel on 7 (5.7.x), on peaaegu alati reeglitega seotud küsimus: autentimine, maine või rämpspost. Uuesti saatmine ei aita siis; midagi peab muutuma.
Viivitus ei ole veel ebaõnnestumine
Ajutise vea (4xx) korral säilitab sinu server kirja ja proovib uuesti. RFC 5321 soovitab proovida vähemalt neli kuni viis päeva, katsete vahel vähemalt pool tundi. Paljud serverid saadavad mõne tunni või päeva pärast viivitusteate:
Action: delayed
Status: 4.7.500
Diagnostic-Code: smtp; 451 4.7.500 Server busy. Please try again later from [203.0.113.25].
Will-Retry-Until: Thu, 12 Nov 2026 08:58:40 +0100See tähendab: ära saada uuesti, server proovib ise edasi. Kui saadad siiski uuesti, võib saaja selle hiljem kahekordselt kätte saada. Kui see lõpuks ei õnnestu enne Will-Retry-Until aega, saabub ikkagi päris bounce, sageli koodiga 4.4.7 (kiri aegus järjekorras).
Võltsbounced: backscatter
Kas said äkki kümneid bounce'e kirjade kohta, mida sa pole kunagi saatnud? Vaata siis algse kirja lõpust. Kui seal on sinu domeeni saatja aadress, kuid server ja tekst, mida sa ei tunne, siis on rämpspostisaatja kasutanud sinu aadressi saatjana. Saajad saadavad oma bounce'id sulle. Seda nimetatakse backscatteriks.
Sinu mailbox ei ole siis tavaliselt häkitud (vt vahe kohta tund 3.4). Aitab: DMARC-reegel, mis muutub samm-sammult rangemaks (tund 4.4), nii et saajad lükkavad võltsitud kirjad tagasi, enne kui bounce tekibki. Kontrolli siiski saadetud kirjade kaustast ja oma teenusepakkuja juurest, kas sinu mailboksist tõesti midagi ei saadetud.
Praktikas: nii see välja näeb
WebOkés näed lisaks bounce'ile ka E-mail Tracking alt DirectAdminis, mida server kirjaga tegi: Delivered, Deferred või Fail, koos vastuvõtva serveri vastusega. Teistel paneelidel on sageli sarnane meililogi ehk "sõnumijälg"; Microsoft 365-s nimetatakse seda näiteks message trace'iks. Tasub esimesena sealt vaadata, kui bounce'i ei tulnud või kui keegi ütleb, et sinu kiri ei jõudnud kohale.
Kokkuvõte
- Bounce tuleb Mailer-Daemonilt ja selle Return-Path on tühi. Loe see läbi, see ütleb tavaliselt täpselt, mis valesti läks.
- Vaata esmalt, kes vea andis (
SMTP error from remote mail server= saaja) ja millisele aadressile. - Masinloetavas osas:
Action,Status,Remote-MTAja eelkõigeDiagnostic-Code. - Esimene number: 4 = ajutine, 5 = lõplik. Teine number: 1 aadress, 2 mailbox, 3 süsteem, 4 marsruut, 5 protokoll, 6 sisu, 7 reeglid.
- Viivitusteade (
delayed): ära saada uuesti. Bounce'id kirjade kohta, mida sa ei saatnud: backscatter.
Test
Ülesanne
Ülesanne Z6.1: Kolme tagastuskirja analüüsimine. Saad kolm näidisbounce't (bounce-1.txt, bounce-2.txt ja bounce-3.txt). Täida iga bounce'i kohta: aadress, millega läks valesti, server, kes vea andis (Remote-MTA), olekukood, kas see on ajutine või lõplik, ja mida saatja peaks tegema (vali loetelust). Programm kontrollib vastuseid fikseeritud võtme järgi ja annab iga välja kohta selgituse.
Lisalugemist
Nende artiklite sammud kehtivad WebOké paneelide kohta; teistel teenusepakkujatel töötab see sarnaselt.
- E-kirja kohaletoimetamine ebaõnnestus: nii loed veateadet ja mida koodid tähendavad
- Tõrketeade: 550 5.5.0 Requested action not taken: mailbox unavailable
- Kontrolli DirectAdmini funktsiooniga Email Tracking, kas e-kiri on kohale jõudnud
- DirectAdmin juhend 9.3: E-mail Tracking: kuhu mu kiri jäi?
- RFC 3464 (DSN ülesehitus), RFC 3463 (laiendatud olekukoodid) ja RFC 5321 lõik 4.2 (vastuskoodid) ning 4.5.4.1 (uuesti proovimine)
