Pošalješ email klijentu, par minuta kasnije dobiješ neugodan odgovor od "Mail Delivery System" s temom "Mail delivery failed: returning message to sender" i čudnim kodom poput "550 5.7.1" ili "451 4.7.1". Što tačno znači, koja je razlika između 4xx i 5xx, i kako fix-ati? Ovaj post je kompletan decoder bounce kodova.
Bounce vs reject — razlika
- Bounce = mail server primaoca prima poruku, pa je vraća. Vidiš bounce poruku u svom inbox-u.
- Reject = mail server primaoca odbija poruku tokom SMTP conversation. Tvoj server vidi error odmah.
- Drop / silent = poruka je primljena ali tiho odbačena. Najgore — ne znaš da nije stigla.
Većina "Mail delivery failed" poruka su rezultat reject-a — primaoca server nije ni primio poruku, samo signalizirao kod.
4xx vs 5xx — kritična razlika
Prvi broj statusnog koda govori sve:
- 4xx = temporary failure (transient). Mail server pokušava re-deliver tokom narednih 24-72h. Možda ipak prođe sam.
- 5xx = permanent failure. Nikad neće proći. Treba ti riješiti uzrok prije ponovnog slanja.
Praktično pravilo: 4xx te ne brine odmah (čekaj 6 sati). 5xx te brine sada.
Najčešći 5xx kodovi i što znače
550 5.1.1 — User unknown
Primalac ne postoji. Adresa je krivo upisana, account je deaktiviran, ili je tvrtka promijenila domain.
Fix: dvostruko provjeri adresu. Kontaktiraj klijenta drugim kanalom da ažurira email.
550 5.1.10 — Recipient address rejected: Address not found
Microsoft 365 / Outlook specific code. Recipient mailbox ne postoji u Microsoft tenancy-u.
Fix: potvrdi sa primaocem da je domain prebačen na M365 i da postoji ta mailbox.
550 5.7.1 — Message blocked by sender policy
Najčešći "permanent reject" kod. Razlozi:
- SPF/DKIM/DMARC failure — tvoj domain ne autorizira tvoj server da šalje
- Tvoj IP na blacklisti
- Recipient server identificira poruku kao spam
- Sender domain ima loš reputation score
Fix: provjeri DNS authentication (vidi naš spam recovery post). Provjeri blacklist status na mxtoolbox.com.
550 5.7.26 — Multiple authentication failures
Specifičan code za Gmail. Tvoj domain šalje s previše različitih IP-eva, neki nisu u SPF-u.
Fix: ažuriraj SPF da pokriva sve outgoing IP-eve. Ako koristiš više SMTP servisa (Mailgun + Gmail Workspace + cPanel), svi moraju biti u SPF-u.
552 5.2.3 — Message size exceeds limit
Tvoja poruka (ili attachment) je veća od limita primalca. Gmail je 25MB, Outlook 20MB, mnogi corporate inbox 10MB.
Fix: kompresiraj attachment ili koristi cloud storage link (Google Drive, Dropbox, Nextcloud) umjesto direktnog attachment-a.
553 5.1.2 — Domain doesn't exist
Tvrtka koju kontaktiraš nema validan DNS za domain (možda otkazana ili istekla). Ili si krivo upisao domain.
Fix: provjeri spelling. Probaj kontaktirati alternativnom kanalom.
554 5.7.1 — Relay access denied
Tvoj server pokušava poslati mail kroz drugi server koji ne dopušta relay. Klasičan kod za misconfigured SMTP relay.
Fix: ako koristiš external SMTP (Mailgun, Postmark), provjeri da su credentials ispravni i da si autoriziran sa svoje domene.
Najčešći 4xx kodovi (temporary)
421 4.7.0 — Try again later
Mail server primaoca je preopterećen ili u maintenance modu. Re-try će automatski ići svakih 15-60 minuta. Većina mailova prođe u 2-6 sati.
Akcija: sačekaj 24h. Ako poslije 72h imaš permanent fail — onda intervenija.
451 4.7.1 — Greylisted
Greylisting je antispam tehnika: prvi pokušaj se temporary reject-a, drugi pokušaj 15 minuta kasnije prolazi. Legitimni servery rade re-try, spam pošiljatelji obično ne.
Akcija: ništa. Tvoj server će automatski re-try. Mail će proći u 15-60 minuta.
452 4.5.3 — Too many recipients
Limit broja primalaca po poruci dosegnut (tipično 100). Ako šalješ na veliku listu — limit primalaca raste s reputation-om.
Fix: podijeli pošiljku u manje batch-eve. Za bulk preko email marketing platforme.
454 4.7.0 — Temporary authentication failure
SMTP authentication je trenutno nije moguća. Tipično mailserver primaoca je u nekoj internoj reorganizaciji.
Akcija: sačekaj. Auto re-try će prevazići.
Specifični kodovi po provider-u
Gmail-specific
- 421-4.7.0 [reason] — Gmail ti šalje detaljan razlog. Čitaj squigly brackets za context
- 550-5.7.1 Our system has detected an unusual rate — Gmail rate limit, šalješ previše brzo
- 550-5.7.26 This mail has been blocked because the sender is unauthenticated — DMARC fail
- 550-5.7.28 The IP you're using has been temporarily rate limited — Gmail-specific reputation issue
Microsoft Outlook / Exchange-specific
- 550 5.7.606 Access denied, banned sending IP — Microsoft blokirao tvoj IP
- 550 5.7.708 Service unavailable. Access denied, traffic not accepted from this IP — Microsoft rate limit
- 5.7.520 Access denied, your organization does not allow external forwarding — Microsoft tenant policy
Yahoo-specific
- 421 4.7.0 [TSS04] Messages from your IP rate limited — Yahoo rate limit
- 550 5.7.1 The user you are trying to contact is receiving mail at a rate — primalac ima previše neotvorenih mailova
Kako čitati cijelu bounce poruku
Tipična bounce poruka izgleda otprilike:
This message was created automatically by mail delivery software.
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:
klijent@firma.hr
SMTP error from remote mail server after RCPT TO:<klijent@firma.hr>:
host mail.firma.hr [192.0.2.1]: 550 5.1.1 User unknown
Bitne stvari:
- "permanent error" vs "temporary error" — odmah znaš 5xx vs 4xx
- Failed address — koja adresa nije primila
- Remote server — koji server je odbacio
- Error code + reason — što su rekli
Ovih 4 informacije skoro uvijek dovoljne za fix.
Što napraviti kad dobiješ bounce
Single-recipient bounce (klijentu)
- Provjeri kod (4xx ili 5xx)
- Ako 4xx — sačekaj 24h
- Ako 5xx — pročitaj reason. Ako "user unknown" → krivi email. Ako "blocked by policy" → tvoj DNS issue.
- Kontaktiraj klijenta drugim kanalom (telefon, WhatsApp)
- Ako je tvoj problem (550 5.7.x), fix prije nego pošalješ ponovo
Mass bounce-evi (više recipients failing)
- Provjeri uzorak — isti uzrok kod svih?
- Ako svi 5.7.x → tvoj DNS/reputation
- Ako miješano → moguće da je tvoja mailing lista zastarjela
- Pause sve dok ne riješiš root cause
Auto-reply bounces ("out of office")
Nisu pravi bounce-evi. Status 250 ili 200 internally, ali primalac ti šalje auto-reply. Ignoriraj ili filter-aj.
Setup bounce handling (za bulk mail)
Ako šalješ više od 1000 mailova mjesečno, ručno čitanje bounce-eva je nerealno. Treba ti automated bounce handling:
Tip 1: Dedicated email marketing platforma
Mailchimp, MailerLite, ActiveCampaign automatski:
- Detektiraju soft bounce (4xx) i tvrdi bounce (5xx)
- Auto-suppress permanent failures nakon 1 tvrdog bounce-a
- Auto-suppress soft bounces nakon 3-5 pokušaja
- Pokažu ti dashboard s reasons
Tip 2: Bounce processing webhook
Ako šalješ kroz Postmark, Mailgun, SendGrid:
- Setup webhook na bounce events
- Tvoj sajt prima POST s bounce reason
- Auto-mark adresa kao invalid u tvojoj bazi
Tip 3: Inbox monitoring
Najjednostavnije za male volumene: napravi pravilo u inbox-u da sve "Mail delivery failed" iz Postmaster-a ide u dedicated folder. Pregledaj jednom tjedno.
WMD pristup bounce management
Na WMD upravljanim paketima:
- cPanel Email Delivery Tracking uključen — vidiš sve outbound i bounce events
- Bounce log analysis — analiziramo bounce patterne za sve klijente
- SPF/DKIM/DMARC monitoring — automatski alertiranje ako bilo koji DNS record zafali
- Outbound rate limiting — sprečavamo da neki kompromitirani sajt blokira reputaciju svih ostalih
- Postmaster integration sa Gmail i Microsoft za real-time reputation
- SMTP relay opcija za klijente s ozbiljnim outbound volumenom
- 24/7/365 hrvatski support — pomognemo s decoding specifičnih bounce-eva
Imaš specifičan bounce code koji ne razumiješ? Pošalji nam zadnjih 5 bounce poruka, mi analiziramo i dajemo akcijski plan. Tipično dijagnoza u 1 sat, fix isti dan ako je DNS-related.