4.3. Komutların ve Yanıtların Sıralanışı
4.3.1. Sıralanışa Genel Bakış
Alıcı ile gönderici arasındaki iletişim gönderici tarafından denetim altında tutulan değişken bir diyalogdur. Aslında, gönderici bir komut verir ve alıcı da yanıtını. Başka türlü düzenlenmedikçe, hizmet eklentileri üzerinden görüşülür. Gönderici bir komut yollamadan önce önceki komutun yanıtını beklemelidir *ZORUNLU*.
Önemli tek yanıt bağlantı karşılama yanıtıdır. Normal olarak, bağlantı kurulduğunda alıcı bir 220 "Hizmete hazırım" yanıtı gönderir. Göndericinin herhangi bir komut göndermeden önce bu karşılama iletisini beklemesi gerekir *ÖNERİ*.
Bilginize
Tüm karşılama türü yanıtlarda yanıt kodundan sonraki ilk sözcük sunucu konağın resmi adı (tamamen nitelenmiş birincil alan adı) olur. Bazan konak anlamlı bir isme sahip olmayabilir. Bu gibi durumlarla ilgili olasılıkların açıklamaları için IP Kodlu Adlar bölümüne bakınız.
Örneğin,
220 ISIF.USC.EDU Service ready
veya
220 mail.foo.com SuperSMTP v 6.1.2 Service ready
ya da
220 [10.0.0.1] Clueless host service ready
Aşağıdaki tablo, her komut için olası başarı ya da başarısızlık yanıtlarını listeler. Bunlar şuna kesinlikle bağlı kalmalıdır *ÖNERİ*: alıcı yanıtlardaki metinlerde değişiklik yapabilir, fakat kod numaralarına ve komuta özgü yanıt sırasına göre uygulanan eylem ve anlam değiştirilemez.
4.3.2. Komut-Yanıt Sıralanışı
Her komut kendi olası yanıtlarıyla birlikte listelenmiştir. Kullanılan öneklerlerle olası yanıtlar belirtilmiştir: Ara yanıtlar için "A", hatalar için "H", başarı yanıtları için "B" önekleri kullanılmıştır. Özel bazı durumlar ve gelecek eklentilere izin vermek için bazı sunucular özel yanıtlar üretebildiklerinden, SMTP istemcilerinin, mümkün olduğu anda, yanıtın sadece ilk rakamını yorumlamaları *ÖNERİ* ve sadece ilk rakamı yorumlayarak, tanımadıkları yanıt kodları ile çalışmaya hazırlıklı olmaları gerekir *ZORUNLU*. Eklenti Modeli bölümünde açıklanan mekanizmaları kullanarak genişletilmiş olmadıkça, SMTP sunucularının üç rakamdan farklı veya 2,3,4,5 ile başlamayan yanıt kodları aktarmamaları gerekir *ZORUNLU*.
Bu sıralama kuralları ve presipte kodların kendileri, sunucularda sunulmak ve istemcilerce kabul edilmek (istenmek) üzere, SMTP eklentileri tarafından değiştirilebilir ve genişletilebilir.
Aşağıda listelenen kodlara ilaveten, her SMTP komutu, ilgili yararsız durumlar saptanırsa aşağıdaki kodlardan herhangi birini döndürebilir:
-
500
-
"komut satırı çok uzun" durumunda veya komut isminin tanınmadığı durumlarda. Bu komutların gerekli alt kümesine yanıtta bir "komut tanınmıyor" hatası üretilmesinin bu belirtimle çelişildiğini göstereceğine dikkat ediniz.
-
501
-
Komut veya bağımsız değişkenlerde sözdizimi hatası. Gelecekteki genişletmeler için sağlanması durumunda, bu belgede bağımsız değişken kabul etmeyen komutlar olarak geçen komutlar (
DATA
,RSET
,QUIT
komutları), bağımsız değişkenlerEHLO
için ilan edilmiş eklentilerin yokluğunda sağlanmışsa, bir 501 yanıtı döndürmelidir *ÖNERİ*. -
421
-
Hizmet kapanıyor ve aktarım kanalını kapatıyor.
Belli başlı sıralamalar:
BAĞLANTI TESİSİ B: 220 H: 554 EHLO veya HELO B: 250 H: 504, 550 MAIL B: 250 H: 552, 451, 452, 550, 553, 503 RCPT B: 250, 251 (ama 251 ve 551 açıklaması için bkz, Adres Düzeltmek veya Güncellemek için Yönlendirme) H: 550, 551, 552, 553, 450, 451, 452, 503, 550 DATA A: 354 -> veri -> B: 250 H: 552, 554, 451, 452 H: 451, 554, 503 RSET B: 250 VRFY B: 250, 251, 252 H: 550, 551, 553, 502, 504 EXPN B: 250, 252 H: 550, 500, 502, 504 HELP B: 211, 214 H: 502, 504 NOOP B: 250 QUIT B: 221