117 / 117 kod
Temel yanıt kodları
Sistem durumu veya sistem yardım yanıtı. Pratikte nadiren kullanılır.
HELP komutuna yanıt olarak gönderilen, sunucunun veya belirli bir komutun nasıl kullanılacağını açıklayan yardım mesajı.
Bağlantı açıldığında sunucunun ilk karşılama mesajı: hizmet hazır. STARTTLS komutuna da TLS anlaşmasının başlayabileceğini belirtmek için bu kodla yanıt verilir.
Sunucu bağlantıyı kapatıyor; genellikle QUIT komutuna yanıt olarak.
AUTH ile kimlik doğrulama başarılı oldu. Genellikle 2.7.0 gelişmiş koduyla birlikte gelir.
İstenen işlem tamamlandı. EHLO, MAIL FROM, RCPT TO komutlarına ve sunucu mesajı kabul ettiğinde DATA sonuna verilen olağan yanıttır.
Alıcı yerel değil, ancak sunucu mesajı kabul ediyor ve belirtilen adrese iletecek.
Sunucu kullanıcının var olup olmadığını doğrulamıyor (hesap numaralandırmayı önlemek için VRFY devre dışı), ancak mesajı kabul edip teslim etmeye çalışacak.
ETRN yanıtı: sunucu, istenen alan adı veya düğüm için kuyrukta bekleyen mesajları teslim etmeye başladı.
AUTH sırasında sunucunun Base64 ile kodlanmış sorgusu (challenge). İstemci, mekanizmanın bir sonraki verisiyle yanıt vermelidir (örneğin AUTH LOGIN'de kullanıcı adı veya parola).
DATA yanıtı: sunucu, yalnızca tek bir nokta içeren bir satırla biten mesaj içeriğini bekliyor.
Hizmet kullanılamıyor ve sunucu bağlantıyı kapatıyor: kapanma, aşırı yük, çok fazla bağlantı veya geçici gönderim sınırı. Gönderen daha sonra yeniden denemelidir.
Kullanıcı, kimlik doğrulaması yapabilmek için önce parolasını değiştirmeli veya başka bir kimlik doğrulama mekanizmasına geçmelidir. 4.7.12 gelişmiş koduyla birlikte gelir.
Posta kutusu geçici olarak kullanılamıyor: meşgul, kilitli veya politika nedeniyle geçici olarak reddedildi. Gri listeleme (greylisting) genellikle bu kodla ya da 451 ile yanıt verir.
İşlem, DNS sorgusunun başarısız olması veya yanıt vermeyen bir filtre gibi yerel bir sunucu hatası nedeniyle iptal edildi. Gönderen daha sonra yeniden denemelidir.
Sunucunun şu anda mesajı kabul etmek için yeterli alanı yok. Mesaj başına alıcı sayısının aşıldığını da belirtir: istemci kalan alıcıları başka bir işlemde göndermelidir.
Geçici kimlik doğrulama hatası (örneğin kimlik bilgisi sunucusu yanıt vermiyor) veya STARTTLS istendiğinde TLS'nin geçici olarak kullanılamaması.
Sunucu, MAIL FROM veya RCPT TO ile gönderilen parametreleri şu anda işleyemiyor, ancak daha sonra kabul edebilir.
ETRN yanıtı: sunucu, istenen düğümün mesaj kuyruğunu şu anda işleyemiyor.
ETRN yanıtı: istenen düğümün veya alan adının kuyruğunun teslimini talep etmesine izin verilmiyor.
Sunucu komutu tanımıyor veya satır çok uzun. AUTH da, değişimdeki bir satır izin verilen üst sınırı aştığında bu kodu kullanır.
Komut geçerli, ancak parametreleri veya argümanları geçersiz: örneğin MAIL FROM'da hatalı biçimlendirilmiş bir adres veya EHLO'da geçersiz bir ad.
Sunucu komutu tanıyor, ancak uygulamıyor veya devre dışı bırakmış; birçok sunucudaki VRFY ya da EXPN gibi.
Komutlar yanlış sırayla geldi; örneğin MAIL FROM'dan önce RCPT TO ya da geçerli alıcı olmadan DATA. Bazı sunucular kimlik doğrulaması yapmadan göndermeye çalışıldığında da bu kodu döndürür.
Sunucu belirtilen parametreyi desteklemiyor; örneğin desteklemediği bir AUTH mekanizması.
Ana makine hiçbir şekilde e-posta kabul etmiyor. 220 yerine karşılama olarak gönderilir ve istemci yeniden denememelidir.
Sunucu, komutu kabul etmeden önce kimlik doğrulaması yapılmasını veya STARTTLS ile TLS başlatılmasını istiyor. Gönderim portu 587 kimlik bilgisi olmadan kullanıldığında tipiktir.
Seçilen kimlik doğrulama mekanizması sunucu politikasına göre çok zayıf. Bazı sağlayıcılar uygulama parolası veya OAuth zorunlu tuttuklarında bu kodu döndürür.
Kullanıcı adı veya parola hatalı ya da kimlik bilgileri reddedildi. 5.7.8 gelişmiş koduyla birlikte gelir.
Seçilen kimlik doğrulama mekanizmasına yalnızca şifreli bir bağlantı üzerinden izin veriliyor: önce STARTTLS çalıştırılmalıdır.
Posta kutusu yok veya kullanılamıyor ya da mesaj politika nedeniyle reddedildi (spam, kara listeler, SPF, DKIM veya DMARC). Eşlik eden gelişmiş kod asıl nedeni belirtir.
Alıcı yerel değil ve sunucu mesajı iletmiyor; mesajın hangi adrese gönderilmesi gerektiğini belirtebilir.
Ayrılan depolama alanı aşıldı: alıcının posta kutusu dolu veya mesaj SIZE uzantısının bildirdiği azami boyutu aşıyor.
E-posta adresi geçersiz veya izin verilmiyor; örneğin sözdizimi hatalı ya da gönderenin bu adresi kullanma izni yok.
İşlem başarısız oldu. İlk karşılama olarak bu istemci için SMTP hizmeti olmadığını; DATA sonrasında ise mesajın genellikle içeriği veya gönderenin itibarı nedeniyle reddedildiğini belirtir.
Sunucu, MAIL FROM veya RCPT TO ile gönderilen bir uzantı parametresini tanımıyor ya da uygulamıyor.
Alıcının alan adı null MX yayımlıyor («.» adresini gösteren bir MX kaydı): e-posta almadığını bildiriyor, bu yüzden yeniden denemenin anlamı yok.
Gelişmiş durum kodları (RFC 3463)
Ayrıntısız durum: yalnızca sonucun sınıfı (başarılı, geçici veya kalıcı hata) bilindiğinde kullanılır.
Mesajdaki adreslerden biriyle ilgili, daha özel kodlara uymayan bir sorun var.
Alıcının posta kutusu hedef sunucuda yok. Yanlış yazılmış bir adres veya kapatılmış bir hesap nedeniyle oluşan klasik geri dönüştür.
Hedef alan adı veya sistem yok ya da e-posta kabul edemiyor; örneğin alan adı çözümlenmiyor.
Alıcı adresinin sözdizimi geçersiz.
Alıcı adresi hedef sistemde birden fazla posta kutusuyla eşleşiyor.
Alıcı adresi geçerli. RCPT TO komutuna verilen olumlu yanıtta 2.1.5 olarak görünür.
Posta kutusu vardı ancak taşındı ve bilinen bir yönlendirme adresi yok.
Gönderen adresinin sözdizimi geçersiz.
Gönderenin alan adı yok veya yanıt kabul etmiyor; örneğin MX ya da A kaydı bulunmuyor.
Mesaj, durum bildirimlerini desteklemeyen bir sisteme teslim edildi; bu nedenle nihai teslimatı doğrulanamayacak.
Alıcının alan adı null MX yayımlıyor: e-posta almadığını bildiriyor.
Posta kutusu var, ancak onunla ilgili bir sorun teslimatı engelledi ve daha özel bir kod yok.
Posta kutusu var ancak devre dışı ve mesaj kabul etmiyor; örneğin askıya alınmış bir hesap.
Alıcının posta kutusu depolama kotasını aştı.
Mesaj, alıcının almasına izin verilen azami boyutu aşıyor.
Alıcı bir dağıtım listesi ve üyelerine genişletilemedi.
Hedef sistemde daha özel kodlara uymayan bir sorun oluştu.
Hedef posta sisteminin depolama alanı dolu.
Hedef ana makine; yakında kapanacağı, aşırı yüklü olduğu veya bakımda olduğu için mesaj kabul etmiyor.
Hedef sistem, mesajın gerektirdiği bir özelliği desteklemiyor.
Mesaj, sunucunun herhangi bir alıcı için kabul ettiği azami boyutu aşıyor.
Hedef sistem yanlış yapılandırılmış ve mesajı kabul edemiyor.
Mesaj kabul edildi, ancak istenenden farklı bir öncelikle (MT-PRIORITY uzantısı).
Daha özel kodlara uymayan bir ağ veya yönlendirme sorunu oluştu.
Bağlanmaya çalışırken hedef sunucu yanıt vermedi.
Bağlantı kuruldu, ancak teslimat tamamlanmadan koptu veya kararsız hâle geldi.
Teslimat için gereken bir dizin hizmeti başarısız oldu; genellikle DNS çözümlemesi.
Hedefe giden bir yol bulunamadı; örneğin alan adının kullanılabilir MX veya A kaydı yok.
Posta sistemi tıkalı ve mesajı şu anda işleyemiyor.
Yönlendirme döngüsü algılandı: mesaj aynı sunuculardan çok fazla kez geçti.
Azami yeniden deneme süresi doldu ve mesaj teslim edilmeden atılıyor.
Teslim protokolüyle ilgili, daha özel kodlara uymayan bir sorun oluştu.
Komut geçersiz, o anda izin verilmiyor veya tanınmıyor.
Komutta sözdizimi hatası var ve sunucu komutu yorumlayamıyor.
Mesajda, sunucunun tek bir işlemde kabul ettiğinden fazla alıcı var.
Komut geçerli, ancak argümanları geçersiz veya desteklenmiyor.
İstemci ile sunucu arasında protokol sürümü uyumsuzluğu var.
AUTH değişimindeki bir satır, sunucunun izin verdiği azami uzunluğu aşıyor.
Mesaj içeriğiyle ilgili, daha özel kodlara uymayan bir sorun oluştu.
Hedef, mesajın veya eklerinden birinin içerik türünü desteklemiyor.
Mesajı teslim etmek için içeriğinin dönüştürülmesi gerekirdi, ancak gönderen bunu yasakladı.
Mesajı teslim etmek için içeriğinin dönüştürülmesi gerekirdi ve sunucu bunu yapamıyor.
Mesaj teslim edildi, ancak içerik dönüştürülürken bilgi kaybedildi.
Mesaj içeriğinin dönüştürülmesi başarısız oldu.
URL ile başvurulan mesaj içeriği alınamadı (BURL uzantısı).
Gönderen veya alıcı, ASCII dışı karakterler içeren adresleri desteklemiyor (uluslararasılaştırılmış e-posta, SMTPUTF8).
Sunucunun UTF-8 metinle yanıt vermesi gerekiyor, ancak istemci SMTPUTF8 desteği bildirmedi.
Mesajda UTF-8 başlıklar var ve bunları desteklemeyen bir veya daha fazla alıcıya aktarılamıyor, bu yüzden reddediliyor.
Ayrıntısız güvenlik durumu. Başarılı kimlik doğrulamalarda (2.7.0), geçici AUTH hatalarında (4.7.0) ve politika kaynaklı retlerde görünür.
Gönderenin bu alıcıya gönderme yetkisi yok: kara liste, itibar veya spam filtresi nedeniyle engelleme ya da izin verilmeyen bir röle (relay) denemesi. 4.7.1 biçiminde genellikle gri listelemeyi belirtir.
Gönderenin bu dağıtım listesine gönderme izni yok.
Mesajın bir güvenlik protokolünden diğerine dönüştürülmesi gerekiyor ve bu mümkün değil.
Mesaj, hedefin desteklemediği güvenlik özellikleri gerektiriyor.
Aktarım sırasında bir kriptografik işlem başarısız oldu; örneğin imza doğrulaması veya şifre çözme.
Hedef, mesajda kullanılan kriptografik algoritmayı desteklemiyor.
Bütünlük doğrulaması başarısız oldu: mesaj aktarım sırasında değiştirildi veya sağlama toplamı eşleşmiyor.
Kimlik doğrulama bilgileri geçersiz: kullanıcı adı veya parola hatalı.
Seçilen kimlik doğrulama mekanizması, sunucu politikasının gerektirdiğinden daha zayıf.
İstenen kimlik doğrulama mekanizmasını kullanmak için TLS gibi harici bir şifreleme katmanı gerekiyor. Özellikle parolayı düz metin olarak gönderen mekanizmalar için tasarlanmıştır.
İstenen kimlik doğrulama mekanizmasına yalnızca şifreli bir bağlantı üzerinden izin veriliyor.
Kullanıcı parolasını değiştirmeli veya başka bir kimlik doğrulama mekanizmasına geçmelidir.
Kimlik doğrulaması yapmaya çalışan kullanıcının hesabı devre dışı.
Sunucu yalnızca kurulu bir güven ilişkisi olan sistemlerden mesaj kabul ediyor.
Mesajın önceliği, şu anda kabul edilemeyecek kadar düşük (MT-PRIORITY uzantısı).
Mesaj, belirtilen öncelik için çok büyük (MT-PRIORITY uzantısı).
Posta kutusunun sahibi, gönderenin belirttiği tarihten bu yana değişti; bu yüzden mesaj teslim edilmiyor (RRVS uzantısı).
Alıcının alan adının sahibi, gönderenin belirttiği tarihten bu yana değişti (RRVS uzantısı).
Sunucu, gönderenin istediği gibi posta kutusunun sahibinin değişip değişmediğini doğrulayamıyor (RRVS uzantısı).
Mesajda geçerli hiçbir DKIM imzası yok ve alıcının politikası bunu gerektiriyor.
Mesajda geçerli DKIM imzaları var, ancak hiçbiri alıcının politikasını karşılamıyor (örneğin imzalayan alan adı veya algoritma nedeniyle).
Mesajda, From başlığındaki alan adıyla aynı alan adından geçerli bir DKIM imzası yok.
Gönderen IP adresi, gönderen alan adının SPF kaydında yetkilendirilmemiş.
SPF değerlendirmesi hatayla sonuçlandı; örneğin hatalı biçimlendirilmiş bir kayıt veya çok fazla DNS sorgusu nedeniyle.
Gönderen IP adresinin ters DNS kaydı (PTR) yok ya da döndürdüğü ad yeniden bu IP'ye çözümlenmiyor.
SPF ve DKIM gibi birden fazla mesaj kimlik doğrulama denetimi aynı anda başarısız oldu.
Gönderenin alan adı null MX yayımlıyor; bu yüzden yanıt ya da geri dönen e-posta alamaz ve mesaj reddediliyor.
Mesaj, benzer kötüye kullanım amaçlı mesajlardan oluşan toplu bir gönderimin parçası gibi görünüyor.
Mesaj yönlendiricilerden veya e-posta listelerinden geçtiğinde kimlik doğrulama sonuçlarını koruyan ARC zincirinin doğrulaması başarısız oldu.
Mesaj REQUIRETLS gerektiriyor ve yoldaki bir sonraki sunucu bu uzantıyı desteklemiyor; bu yüzden şifreleme garantisiyle teslim edilemiyor.
Temel ve gelişmiş kodu aynı anda görmek için sunucunun tam yanıtını yapıştırın, örneğin 550 5.7.1 Message rejected. Temel bir kod aradığınızda, ona genellikle eşlik eden gelişmiş kodlar da gösterilir.
Nasıl çalışır
Bir SMTP oturumunda istemcinin her komutu (EHLO, MAIL FROM, RCPT TO, DATA…), sunucudan üç haneli bir kodla başlayan bir yanıt alır. İlk hane sonucu belirtir: 2 başarı, 3 sunucunun daha fazla veri beklediği, 4 geçici hata ve 5 kalıcı hata anlamına gelir. İkinci hane alanı gösterir: x0z sözdizimi, x1z bilgi, x2z bağlantı ve x5z posta sistemi. Koddan sonraki metin serbesttir ve her sunucu kendi metnini yazar; programlar yalnızca sayıya bakar.
Üç hane neden hakkında pek bir şey söylemediği için RFC 3463, sınıf.konu.ayrıntı biçiminde gelişmiş durum kodlarını tanımladı: 5.1.1, posta kutusu olmadığı (1) için adreslemeyle (1) ilgili kalıcı bir hatadır (5). Sınıf ilk hanenin anlamını tekrarlar (2, 4 veya 5), konu nedeni gruplar ve ayrıntı onu netleştirir. Bu kodları kullanan sunucular bunu EHLO yanıtında ENHANCEDSTATUSCODES uzantısıyla bildirir; aynı kod geri dönen e-postalardaki Status alanında da görünür.
Tablo, RFC 5321'deki temel kodları ve yaygın kullanılan uzantıların (AUTH, STARTTLS, ETRN ve null MX) eklediği kodları, ayrıca IANA kaydındaki tüm gelişmiş kodları, her birinin genellikle birlikte göründüğü temel kodlarla bir araya getirir. Büyük sağlayıcılar kendi metinlerini ve yardım bağlantılarını ekler, ancak her zaman bu aynı numaraların üzerine.
Örnekler
550 5.1.1 <nadie@example.com>: Recipient address rejected: User unknown in local recipient table5xx Permanent · X.1.1 Bad destination mailbox addressHesap mevcut olmadığında Postfix'in verdiği tipik geri dönüş. Yeniden denemek işe yaramaz: adresi düzeltmek gerekir. Aynı alıcıya daha önce e-posta ulaşıyorduysa büyük olasılıkla hesap kapatılmıştır.450 4.2.0 <ana@example.com>: Recipient address rejected: Greylisted4xx Transient · X.2.0 Other or undefined mailbox statusGri listeleme (greylisting): sunucu tanımadığı göndereni geçici olarak reddeder ve yeniden denemesini bekler. Meşru bir e-posta sunucusu birkaç dakika sonra bunu kendiliğinden yapar ve mesaj kabul edilir; birçok spam yazılımı ise hiç yeniden denemez.AUTH LOGIN334 VXNlcm5hbWU6334 yanıtı Base64 ile kodlanmış sorguyu taşır: VXNlcm5hbWU6 «Username:», bir sonraki UGFzc3dvcmQ6 ise «Password:» demektir. Kimlik bilgileri hatalıysa sunucu 535 5.7.8 ile yanıt verir; önce şifreleme istiyorsa 538 veya 530 ile.Kullanım senaryoları
- Sunucunun döndürdüğü hata mesajından bir e-postanın neden geri döndüğünü anlamak.
- Bir hatanın kuyruğun yeniden deneyeceği geçici bir hata mı, yoksa müdahale gerektiren kalıcı bir hata mı olduğunu ayırt etmek.
- Bir uygulamadan, yazıcıdan veya sunucudan e-posta gönderimini yapılandırırken kimlik doğrulama hatalarını teşhis etmek.
- E-posta sunucusu günlüklerinde SPF, DKIM, DMARC, ters DNS veya kara liste kaynaklı retleri yorumlamak.
- Mevcut olmayan adresleri listeden çıkarmak için toplu e-posta platformundaki geri dönüşleri sınıflandırmak.
- telnet, openssl s_client veya swaks ile kaydedilmiş bir SMTP oturumunu okumak.
Sık sorulan sorular
4xx ve 5xx hataları arasındaki fark nedir?
4xx geçicidir: gönderen sunucu mesajı kuyrukta tutar ve belirli aralıklarla, genellikle dört-beş gün boyunca yeniden dener; ardından vazgeçip bir geri dönüş bildirimi oluşturur. 5xx kalıcıdır: geri dönüş hemen gerçekleşir ve aynı mesajı hiçbir şeyi değiştirmeden yeniden göndermek yine başarısız olur.
Yanıtta neden 550 5.1.1 gibi iki kod var?
İlki, RFC 5321'in zorunlu kıldığı üç haneli temel koddur. İkincisi, nedeni netleştiren RFC 3463 gelişmiş durum kodudur: bir 550; mevcut olmayan bir posta kutusundan (5.1.1), politika kaynaklı bir engellemeden (5.7.1) veya bir SPF hatasından (5.7.23) kaynaklanabilir. Teşhis için asıl olarak gelişmiş koda bakmak gerekir.
550-5.7.1'deki tire ne anlama gelir?
Yanıtın birden fazla satırdan oluştuğunu. Tüm satırlar aynı kodu taşır, ancak ara satırlar kodu metinden tireyle, son satır ise boşlukla ayırır; istemci yanıtın nerede bittiğini böyle anlar. EHLO'nun döndürdüğü uzantı listesinde görülen de aynı şeydir.
Adres mevcut olduğu hâlde neden 550 5.7.1 ile reddediliyorum?
Çünkü 5.7.1 alıcıyla değil gönderenle ilgilidir: sunucu bu mesajı teslim etmenize izin vermiyor. Yaygın nedenler; gönderen IP'nin bir kara listede olması, alan adının SPF, DKIM veya DMARC doğrulamasından geçememesi, IP'nin ters DNS kaydının olmaması ya da sunucunun kimlik doğrulaması olmadan röle olarak kullanılmaya çalışılmasıdır. Koda eşlik eden metin genellikle ipucu verir.
Bir uygulamadan e-posta gönderirken neden 530 veya 535 alıyorum?
530, sunucunun mesajı kabul etmeden önce kimlik doğrulaması veya TLS başlatılmasını istediğini; 535 ise kullanıcı adının ya da parolanın hatalı olduğunu belirtir. Uygulamanın STARTTLS ile 587 portunu veya örtük TLS ile 465 portunu kullandığını, kimlik doğrulamanın etkin olduğunu ve Gmail ya da Microsoft 365 gibi sağlayıcılarda normal parola yerine bir uygulama parolası veya OAuth kullandığınızı kontrol edin.