Common Email Errors dan Cara Bacanya: Panduan Lengkap untuk Sysadmin dan Email Marketer

Email errors sering bikin pusing, apalagi kalau lagi urgent kirim email penting atau campaign marketing. Error code seperti 550 relay denied, 554 rejected, atau 421 temporarily deferred muncul tiba-tiba tanpa penjelasan yang jelas.

Nah, di artikel ini kita bakal breakdown masing-masing error, mulai dari artinya, penyebabnya, sampai cara fix-nya step-by-step. Jadi next time muncul error, kalian bisa baca kode-nya kayak pro dan langsung tahu harus ngapain.

Apa Itu SMTP Error Codes?

SMTP (Simple Mail Transfer Protocol) itu protokol standar buat kirim email. Setiap kali ada masalah, server bakal ngirim kode error 3 digit yang nunjukin apa yang salah.

Struktur kode error SMTP:

Digit PertamaArtiContoh
2xxSuccess250 OK (email terkirim)
4xxTemporary Failure421, 451 (coba lagi nanti)
5xxPermanent Failure550, 554 (harus diperbaiki dulu)

Digit kedua dan ketiga nunjukin detail spesifik error-nya. Yang sering bikin pusing itu yang 4xx dan 5xx, karena email nggak kekirim.

550 Relay Denied

Error 550 relay denied atau “550 5.7.1 Unable to relay” itu artinya server email nolak untuk meneruskan (relay) email lo ke tujuan.

Kenapa Bisa Muncul?

Biasanya karena:

  1. Belum autentikasi ke SMTP server
  2. IP address atau domain di-blacklist
  3. SPF/DKIM record salah atau belum dikonfigurasi
  4. Mencoba relay dari IP yang nggak diizinkan
  5. Reverse DNS (rDNS) nggak sesuai

Ciri-Cirinya

  • Email stuck di outbox
  • Langsung dapet bounce back
  • Pesan error: “Relay access denied” atau “Unable to relay”

Cara Fix 550 Relay Denied

Step 1: Cek Autentikasi SMTP

Pastikan email client sudah login dengan benar:

# Contoh konfigurasi SMTP yang benar
SMTP Server: smtp.domainlo.com
Port: 587 (TLS) atau 465 (SSL) 
# Jangan pakai port 25 untuk client!

Authentication: Required
Username: email@domainlo.com
Password: ********
Encryption: STARTTLS atau SSL/TLS

Di Thunderbird atau Outlook, centang opsi “My server requires authentication”.

Step 2: Verifikasi SPF Record

SPF (Sender Policy Framework) itu DNS record yang nunjukin server mana yang boleh kirim email atas nama domain lo.

Cek SPF record:

# Cek SPF pakai dig
dig TXT domainlo.com +short

# Atau pakai nslookup
nslookup -type=txt domainlo.com

Hasil yang benar kira-kira gini:

"v=spf1 include:_spf.google.com include:mailgun.org ~all"

Kalau belum ada, tambahkan di DNS management:

Type: TXT
Host: @
Value: v=spf1 ip4:123.45.67.89 include:_spf.google.com ~all
TTL: 3600

Penjelasan:

  • ip4:123.45.67.89 = IP server lo boleh kirim
  • include:_spf.google.com = Google juga boleh (kalau pakai Gmail)
  • ~all = Soft fail (email masih diterima tapi di-flag)

Step 3: Cek Blacklist Status

Cek apakah IP lo kena blacklist:

# Cek IP publik lo dulu
curl ifconfig.me

# Terus cek di MXToolbox atau pakai command line:
dig +short 89.67.45.123.zen.spamhaus.org
# Kalau hasilnya 127.0.0.x berarti kena blacklist

Tools online yang recommended:

  • MXToolbox Blacklist Check: mxtoolbox.com/blacklists.aspx
  • Spamhaus: check.spamhaus.org
  • MultiRBL: multirbl.valli.org

Kalau kena blacklist, ikuti prosedur delisting di masing-masing RBL (Real-time Blackhole List).

Step 4: Konfigurasi Reverse DNS (rDNS)

rDNS itu mapping dari IP ke domain (kebalikan dari DNS biasa).

Cek rDNS:

dig -x 123.45.67.89 +short

Harusnya keluar domain lo, misalnya mail.domainlo.com. Kalau nggak match, kontak ISP atau hosting provider buat set rDNS.

554 Rejected

Error 554 rejected itu lebih umum dan bisa berarti banyak hal. Variasi pesannya:

  • “554 5.7.1 Message rejected due to content policy”
  • “554 transaction failed”
  • “554 Message refused”

Kenapa Bisa Muncul?

  1. Konten dianggap spam (terlalu banyak link, kata-kata mencurigakan)
  2. Domain/IP reputation jelek
  3. Rate limiting (kirim terlalu banyak email dalam waktu singkat)
  4. Attachment mencurigakan (.exe, .zip, .scr)
  5. Virus/malware terdeteksi di email

Ciri-Cirinya

  • Bounce message panjang dengan detail “policy”
  • Kadang ada link ke postmaster page
  • Bisa terjadi saat kirim ke provider tertentu (Gmail, Yahoo, Outlook)

Cara Fix 554 Rejected

Step 1: Baca Pesan Error Lengkap

Jangan cuma lihat “554”, tapi baca seluruh pesan. Contoh:

554 5.7.1 [GL01] Message from 123.45.67.89 rejected 
due to policy reasons. Please visit https://postmaster.yahoo.com/

Kode [GL01] itu petunjuk spesifik dari Yahoo. Search kode tersebut untuk solusi tepat.

Step 2: Periksa Konten Email

Hindari elemen yang trigger spam filter:

Hindari:

  • Subjek ALL CAPS atau banyak tanda seru!!!
  • Kata-kata: “FREE”, “Click here”, “Act now”, “Limited time”
  • Terlalu banyak link (ratio text:link < 60:40)
  • Attachment: .exe, .zip, .scr, .js
  • HTML berantakan atau broken tags

Lakukan:

  • Personalisasi subject dan body
  • Plain text version selalu sertakan
  • Unsubscribe link yang jelas (wajib untuk marketing email)
  • Test dengan Mail Tester dulu

Step 3: Cek Sender Reputation

Score reputation kalian bisa cek di:

# Sender Score (perlu login gratis)
https://www.senderscore.org/

# Google Postmaster Tools (untuk Gmail)
https://postmaster.google.com/

# Microsoft SNDS (untuk Outlook/Hotmail)
https://sendersupport.olc.protection.outlook.com/snds/

Sender Score interpretasi:

  • 90-100: Excellent
  • 80-89: Good
  • 70-79: Fair (perhatian)
  • 0-69: Poor (perlu perbaikan serius)

Step 4: Kurangi Sending Rate

Kalau kirim bulk email, jangan langsung bomb:

# Contoh rate limiting dengan Postfix
# Di file /etc/postfix/main.cf:
default_destination_rate_delay = 1s
default_destination_concurrency_limit = 20

Rule of thumb:

  • Shared hosting: max 100 email/jam
  • VPS dengan dedicated IP: max 1000 email/jam (setelah warmup)
  • Email marketing service: ikuti guideline provider

Step 5: Request Whitelist/Delisting

Kalau persisten, kontak postmaster:

To: postmaster@yahoo.com / abuse@yahoo.com / support@google.com
Subject: Request Review for IP 123.45.67.89

Body:
- IP Address: 123.45.67.89
- Domain: domainlo.com
- Problem: Email rejected with 554 error
- Action taken: [jelaskan perbaikan yang sudah dilakukan]
- Sample email: [lampirkan header email yang reject]

421 Temporarily Deferred

Error 421 temporarily deferred itu artinya server sementara nolak, tapi bukan permanent. Pesan umum:

  • “421 4.7.1 Try again later”
  • “421 Service not available”
  • “421 Server busy”

Kenapa Bisa Muncul?

  1. Greylisting: Teknik anti-spam, suruh pengirim coba lagi nanti
  2. Server overload: Terlalu banyak traffic
  3. Rate limiting: ISP batasi sementara
  4. DNS temporary failure: Resolver sementara bermasalah
  5. Maintenance: Server tujuan lagi di-update

Ciri-Cirinya

  • Email masuk queue (antrian), nggak langsung reject
  • Biasanya ada kata “temporary” atau “try again”
  • Email client akan retry otomatis

Cara Fix 421 Temporarily Deferred

Step 1: Identifikasi Jenis 421

Baca baik-baik pesan lengkap:

421 4.7.1 [TS01] Messages from 123.45.67.89 temporarily 
deferred due to user complaints

Kalau ada kata “user complaints” atau “reputation”, itu bukan temporary biasa, tapi masalah reputation yang harus di-fix.

Step 2: Untuk Greylisting (Normal Case)

Greylisting itu teknik server suruh email server pengirim “coba lagi” setelah delay. Server yang legitimate bakal retry, sementara spam server biasanya nggak.

Ciri greylisting:

  • Pesan: “Greylisted, please try again in 300 seconds”
  • Delay: 5-15 menit pertama kali kirim ke domain tersebut

Solusi:

  • Nggak perlu ngapa-ngapain, email server akan retry otomatis
  • Jangan manual resend berkali-kali (bisa dianggap spam)
  • Pastikan retry interval sesuai standar

Step 3: Konfigurasi Retry Policy yang Benar

Di Postfix, konfigurasi retry:

# /etc/postfix/main.cf

# Initial retry interval
minimal_backoff_time = 300s  # 5 menit
maximal_backoff_time = 4000s # ~1 jam

# Maksimal waktu retry (setelah ini dianggap permanent)
maximal_queue_lifetime = 2d  # 2 hari
bounce_queue_lifetime = 2d

# Jumlah retry
smtp_destination_concurrency_limit = 10

Exponential backoff pattern:

  • Retry 1: 5 menit
  • Retry 2: 15 menit
  • Retry 3: 30 menit
  • Retry 4: 1 jam
  • Retry 5: 4 jam
  • dst…

Step 4: Cek Server Status Tujuan

Kalau semua email ke Gmail deferred, cek status Google:

# Cek MX record Gmail
nslookup -type=mx gmail.com

# Cek apakah server up
telnet gmail-smtp-in.l.google.com 25
# Atau
nc -vz gmail-smtp-in.l.google.com 25

Cek juga status page:

  • Google Workspace Status: google.com/appsstatus
  • Microsoft 365 Status: status.office365.com

Step 5: Kalau Persisten >24 Jam

Kalau 421 terus-terusan lebih dari sehari:

# Cek queue email yang stuck
mailq
# atau
postqueue -p

# Flush queue manual (force retry)
postqueue -f

# Hapus email tertentu dari queue
postsuper -d MESSAGE_ID

Tindakan lanjut:

  1. Cek IP reputation (mungkin di-greylist terus karena reputation jelek)
  2. Setup dedicated IP (kalau shared IP bermasalah)
  3. Kontak support provider email tujuan

Bonus: Error Codes Lain yang Sering Muncul

451 Temporary Local Problem

451 4.3.0 Temporary local problem - please try later

Arti: Server penerima ada masalah internal (disk full, database error, dll).

Solusi: Tunggu 30-60 menit, retry otomatis biasanya berhasil.

452 Too Many Recipients

452 4.5.3 Too many recipients

Arti: Batas jumlah penerima per email terlampaui (biasanya max 100/orang).

Solusi: Bagi ke beberapa batch kirim.

571 Delivery Not Authorized

571 5.7.1 Delivery not authorized, message refused

Arti: Policy strict di server penerima (DKIM/SPF wajib tapi nggak valid).

Solusi: Perbaiki DNS record authentication.

550 Mailbox Unavailable

550 5.1.1 Mailbox unavailable or not found

Arti: Alamat email tujuan nggak ada.

Solusi: Cek typo, hapus dari list (hard bounce).

Tools untuk Diagnosa Email Errors

1. MXToolbox (All-in-One)

# Cek MX, SPF, DKIM, DMARC, Blacklist
https://mxtoolbox.com/

Fitur:

  • MX Lookup
  • SPF Record Check
  • Blacklist Check
  • SMTP Test
  • Header Analyzer

2. Mail Tester (Spam Score)

Kirim email ke alamat unik yang digenerate, terus dapet score 0-10:

https://www.mail-tester.com/

Target: Score 8+ untuk inbox placement yang bagus.

3. Google Admin Toolbox

https://toolbox.googleapps.com/apps/checkmx/

Cek konfigurasi MX record untuk Google Workspace.

4. OpenSSL (Manual SMTP Test)

Test koneksi SMTP manual:

# Test TLS connection
openssl s_client -connect smtp.gmail.com:587 -starttls smtp

# Setelah connect, coba handshake SMTP:
EHLO domainlo.com
AUTH LOGIN
# (base64 encoded username)
# (base64 encoded password)
MAIL FROM:<email@domainlo.com>
RCPT TO:<tujuan@gmail.com>
DATA
Subject: Test
Test body.
.
QUIT

5. Log Analysis

Cek log email server untuk detail error:

# Postfix logs
tail -f /var/log/mail.log
grep "550" /var/log/mail.log | tail -20

# Sendmail logs  
tail -f /var/log/maillog

# Exim logs
tail -f /var/log/exim/mainlog

Best Practices Biar Email Lo Nggak Ditolak

1. Warm Up IP Baru

Jangan langsung kirim ribuan email dari IP baru:

HariJumlah Email
1-350-100/hari
4-7100-300/hari
8-14300-500/hari
15-30500-1000/hari
30+Normal volume

2. Implementasi Authentication Lengkap

Pastikan 3 pillar terpasang:

# SPF (Sender Policy Framework)
v=spf1 ip4:123.45.67.89 include:_spf.google.com ~all

# DKIM (DomainKeys Identified Mail)  
default._domainkey IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC..."

# DMARC (Domain-based Message Authentication)
_dmarc IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@domainlo.com; pct=100"

3. Monitor Bounce Rate

Hard Bounce (permanent) vs Soft Bounce (temporary):

# Hard bounce: langsung hapus dari list
# Soft bounce: retry beberapa kali, baru hapus kalau persisten

# Target metrics:
Hard Bounce Rate: <2%
Soft Bounce Rate: <5%
Complaint Rate: <0.1%

4. List Hygiene

Bersihin email list secara rutin:

# Hapus:
- Email yang hard bounce
- Subscriber yang nggak engage >6 bulan  
- Duplicate addresses
- Role accounts (admin@, support@, noreply@) kalau B2C

5. Feedback Loop (FBL)

Daftar ke feedback loop provider besar:

  • Google: postmaster.google.com
  • Microsoft: sendersupport.olc.protection.outlook.com
  • Yahoo: postmaster.yahoo.com
  • SpamCop: spamcop.net

FBL ngirim notifikasi kalau user mark email lo sebagai spam, jadi bisa langsung remove dari list.

FAQ

Q: Kenapa email saya masuk spam padahal nggak ada error?

A: Nggak ada error SMTP nggak jamin masuk inbox. Cek:

  • Content (terlalu promotional?)
  • Authentication (SPF/DKIM/DMARC valid?)
  • Reputation (IP/domain pernah kirim spam?)
  • Engagement (user sering open/reply atau nggak?)

Q: Berapa lama email stuck di queue karena 421?

A: Tergantung konfigurasi maximal_queue_lifetime, biasanya 2-5 hari. Setelah itu dianggap permanent failure dan bounce.

Q: Apakah boleh kirim email dari shared hosting?

A: Boleh, tapi dengan batasan:

  • Max ~100-200 email/jam
  • IP sering kena blacklist karena user lain
  • Better pakai dedicated IP atau third-party SMTP (SendGrid, Mailgun, Amazon SES)

Q: Gimana bedain greylisting vs blacklist?

A:

  • Greylisting: Pesan “try again later”, cuma delay sementara, pertama kali ke domain tersebut
  • Blacklist: Pesan “rejected”, “denied”, atau “blocked”, permanen sampai di-delist

Q: Apa itu “warm up IP” dan kenapa penting?

A: Provider email (Gmail, Yahoo) tracking behavior IP baru. Kalau langsung kirim volume besar, dianggap spammer. Warm up nunjukin IP lo legitimate dengan volume gradual.

Kesimpulan

Email errors kayak 550, 554, dan 421 itu nggak serumit kelihatannya. Kuncinya:

  1. Baca pesan error lengkap – Jangan cuma lihat 3 digit awal
  2. Cek authentication – SPF, DKIM, DMARC wajib valid
  3. Monitor reputation – IP/domain nggak boleh di-blacklist
  4. Patuhi rate limit – Jangan greedy kirim terlalu cepat
  5. Konten berkualitas – Relevant, engaging, nggak spammy

Dengan setup yang bener dan monitoring rutin, delivery rate bisa dijaga di atas 95%. Kalau masih stuck, tools kayak MXToolbox dan Mail Tester jadi sahabat terbaik buat diagnosa.

Ada error spesifik yang belum tercover? Drop di komentar, kita bahas bareng-bareng!

Leave a Reply

Your email address will not be published. Required fields are marked *