3.5. Adres Hatalarını Ayıklama Komutları

3.5.1. Genel Bakış

SMTP kullanıcı adını doğrulamak ve posta listesi içeriğini elde etmek için komutlar da sağlar. Bunu karakter dizisi bağımsız değişkenler alan VRFY ve EXPN komutları ile yapar. Gerçeklenimler VRFY ve EXPN komutlarını desteklerse iyi olur *ÖNERİ* (yine de, VRFY için Normal Yanıt ve VRFY, EXPN ve Güvenlik bölümlerine bakınız).

VRFY komutu için dizge bir kullanıcı ismi veya bir kullanıcı ismi ve alandır (aşağıya bakınız). Eğer normal bir yanıt (250 gibi) geliyorsa, yanıt kullanıcının posta kutusunu içermek zorundayken *ZORUNLU* kullanıcının tam ismini de içerebilir *SEÇİMLİK*. Dizge şu biçimlerden biri olmalıdır *ZORUNLU*:

    Kullanıcının Adı ve Soyadı <yerel-kısım@alan>
    yerel-kısım@alan

VRFY komutunun bağımsız değişkeni olan isim birden fazla posta kutusunu betimleyebildiği takdirde, sunucu ya belirsizliğe dikkat çeker ya da başka olasılıklar belirtir *SEÇİMLİK*. Başka bir deyişle, VRFY komutunun meşru yanıtı şunlardan birinin benzeri olabilir:

553 User ambiguous  // 553 Kullanıcı belirsiz

veya

553- Ambiguous;  Possibilities are  // 553- Belirsizlik; Olasılıklar:
553-Joe Smith <jsmith@foo.com>
553-Harry Smith <hsmith@foo.com>
553 Melvin Smith <dweep@foo.com>

ya da

553-Ambiguous;  Possibilities
553- <jsmith@foo.com>
553- <hsmith@foo.com>
553 <dweep@foo.com>

Normal şartlar altında, bir 553 yanıtı alan bir istemcinin kullanıcıya sonucu açıklamaması beklenir. Tam olarak belirtilen biçimlerin ve [34]'te açıklandığı gibi ek yanıt kodları tarafından ilave olarak "user ambiguous" veya "ambiguous" anahtar sözcüklerinin olası kullanımı, gerektiğinde diğer dillere özdevinimli çeviriyi kolaylaştıracaktır. Şüphesiz, oldukça özdevinimli hale getirilmiş ya da İngilizce'den farklı bir dilde işlem yapan bir istemci, yanıtın içerdiği metni olduğu gibi kullanıcıya yansıtmak yerine yanıtı tercüme etmeyi veya kullanıcıya durumu raporlamadan önce ek bilgi için bir sözlük hizmetine başvurulması gibi özdevinimli eylemlerden birini yapmayı tercih ederdi.

EXPN komutu için dizge bir postalama listesidir ve başarılı (250 gibi) bir çok satırlı yanıt postalama listesindeki posta kutularının listesini içermeli *ZORUNLU* iken, bu liste kullanıcılarının ad ve soyadlarını da içerebilir *SEÇİMLİK*.

Bazı konaklarda, bir posta kutusu ile tek bir posta kutusunun rumuzu arasındaki fark, her iki girdi türü için ortak bir veri yapısı kullanıldığından, bulanıktır ve sadece tek bir posta kutusu içeren postalama listelerinin varlığı olasıdır. Bir postalama listesine VRFY uygulayacak bir istek yapılmışsa, iletinin listedeki herkese teslimi şeklinde adreslenmiş olması durumunda bir olumlu yanıt verilebilir *SEÇİMLİK*, aksi takdirde bir hata raporlanırsa iyi olur *ÖNERİ* ("550 bu bir postalama listesi adresidir, bir kullanıcı adresi değildir" veya "252 Posta listesi üyelerini doğrulamaya izin verilmiyor" gibi bir hata raporu). Eğer bir kullanıcı ismini açan bir istek yapılmışsa tek bir isim içeren bir listeden oluşan olumlu bir yanıt verilebileceği gibi bir hata da raporlanabilir *SEÇİMLİK* ("550 bu bir kullanıcı adresidir, bir postalama listesi adresi değildir" gibi bir hata raporu).

Başarılı bir çok satırlı cevap (EXPN için normal olan) durumunda yanıtın her satırında tam olarak bir posta kutusu belirtilir. Belirsiz bir istek yapılması durumundan yukarıda bahsedilmişti.

"Kullanıcı adı" bulanık bir terimdir ve tedbirli kullanılmıştır. VRFY veya EXPN komutlarının gerçeklenimi en azından "kullanıcı adları" olarak yerel posta kutularını tanımayı içermelidir *ZORUNLU*. Şu an ki Genel Ağ uygulaması sıklıkla çok sayıda alanın postasıyla tek bir konağın ilgilenmesi sonucunu doğurduğundan, konaklar, özellikle de bu işlevselliği sağlayan konakların, bir "kullanıcı ismi" olarak "yerel-kısım@alan" biçimini kabul etmeleri iyi olur *ÖNERİ*; bu konaklar ek olarak "kullanıcı isimleri" olarak başka dizgeleri tanımayı tercih edebilir *SEÇİMLİK*.

Bir çok satırlı yanıt gerektiren bir posta kutusu listesinin açılımı durumu şöyle örneklenebilir:

İ: EXPN Numune-Topluluk
S:  250-Jon Postel <Postel@isi.edu>
S:  250-Fred Fonebone <Fonebone@physics.foo-u.edu>
S:  250 Sam Q. Smith <SQSmith@ozellikle.genel.com>

veya

İ: EXPN imtiyaz-sevenler-listesi
S:  550 Size Erisim Yasak.

VRFY ve EXPN komutlarının karakter dizisi bağımsız değişkenleri kullanıcı adı ve posta kutusu listesi kavramlarının gerçeklenimlerinin çeşitliliğine bağlı olarak daha fazla kısıtlanamaz. Bazı sistemlerde EXPN komutunun bağımsız değişkeni bir postalama listesi içeren bir dosyanın adı olabilir, ama tekrar belitelim ki, Genel Ağ'da dosya isimlendirme uzlaşımları çeşitliliği vardır. Bu komutlardaki tarihsel farklılıklar nedeniyle elde edilen sonuçlar çok dikkatli yorumlanmalı *ÖNERİ* ve sadece sorun teşhisi için kullanılmalıdır *ÖNERİ*.

3.5.2. VRFY için Normal Yanıt

Bir VRFY veya EXPN isteğinden normal yanıt (2yz veya 551) döndüğünde, yanıt normal olarak "<yerel-kısım@alan>" gibi bir posta kutusu ismi içerir; burada "alan" tamamen nitelikli alan adı olup sözdizimi içinde görünmelidir *ZORUNLU*. Bu belirtimin niyetine karşı çıkmayı haklı gösterecek kadar olağanüstü durumlarda, serbest biçimli metin döndürülebilir *SEÇİMLİK*. Hem bilgisayarlar hem de insanlar tarafından çözümlemeyi kolaylaştırmak için adresler "<" ve ">" arasında olmalıdır *ÖNERİ*. Serbest biçimli hata ayıklama bilgisi değil de adresler döndürüldüğünde, EXPN ve VRFY komutları sadece SMTP RCPT komutlarında kullanılabilen geçerli alan adreslerini döndürmelidir *ZORUNLU*. Bu sebepten, eğer bir adres, teslimatın bir programa veya başka bir sisteme yapılacağı anlamına gelecekse, bu hedefe erişmekte kullanılan posta kutusu ismi belirtilmelidir *ZORUNLU*. Yollar (açıkça kaynak rotaları) EXPN veya VRFY komutundan döndürülmemelidir *ZORUNLU*.

Sunucu gerçeklenimleri VRFY ve EXPN komutlarının ikisine de destek vermelidir *ÖNERİ*. Güvenlik kaygılarıyla, gerçeklenimler, yapılandırma seçenekleri veya eşdeğerleri üzerinden bu komutların biri veya her ikisinin de iptal edilebileceği yerel kurulumları sağlayabilir *SEÇİMLİK*. Bu komutlar desteklendiğinde, röle desteği de varsa, bu komutların rölelerle çalışmaları gerekli değildir. RFC 821'de bunların her ikisi de seçimlik olduğundan, bunlar destekleniyorsa, bir EHLO yanıtında hizmet eklentileri olarak listelenmeleri gerekir *ZORUNLU*.

3.5.3. VRFY veya EXPN için Başarılı Yanıtın Anlamı

Bir sunucu, adresi gerçekten doğrulamadıkça, bir VRFY veya EXPN komutuna yanıt olarak bir 250 kodu döndürmemelidir *ZORUNLU*. Bilhassa, sunucunun yaptığı tek iş verilen sözdiziminin geçerliliğini doğrulamaksa bir 250 kodu döndürmemelidir *ZORUNLU*. Bu durumda, 502 (Komut gerçeklenmedi) veya 500 kodu (Sözdizimi hatası, komut anlaşılamadı) döndürmelidir *ÖNERİ*. Başka bir yerde de belirtildiği gibi, VRFY ve EXPN gerçeklenimi (adreslerin gerçekten doğrulanması ve bilgi döndürülmesi anlamında) hararetle önerilmektedir. Bu sebepten, VRFY için 500 veya 502 döndüren gerçeklenimler bu belirtimle tam uyumlu değildir.

Özellikle bir sunucunun, bir alan ya da başka bir sunucu için posta aktarımcı olarak çalıştığı durumda bir adresin doğru gibi göründüğü ama gerçekte sebepsizce doğrulanamadığı durumlar olabilir. Bu durumdaki "Görünen Doğruluk" normalde en azınan sözdizimi denetimi özelliğini ve kimi zaman, belirtilen alanların postayı röleleleyebileceği umulan konaklar olduklarını doğrulayabilme özelliğini ihtiva eder. Bu durumlarda, 252 yanıt kodu döndürülmelidir *ÖNERİ*. Bu durumlar Temel Yapı bölümünde bahsedilen RCPT doğrulama konusuyla paraleldir. Benzer olarak, Adres Düzeltmek veya Güncellemek için Yönlendirme bölümünde bahsedilen uygulama, adreslerin tanındığını ama onlar için alınan postanın sevkedildiğini veya geri gönderildiğini belirten VRFY (ve EXPN) komutlu 251 ve 551 yanıt kodlarına uygulanır. Gerçeklenimler genelde biraz daha uzun sürecek olsa bile VRFY durumunda adres doğrulama ile ilgili olarak RCPT durumuna oranla daha fazla girişken olmalıdır *ÖNERİ*.

3.5.4. EXPN Uygulamaları ve Anlamsallık

EXPN komutu çoğunlukla postalama listeleri ve çok sayıda hedef adresi belirten rumuzlarla ilgili sorunların anlaşılması ve hatalarının ayıklanması için çok yararlıdır. Bazı sistemler yinelenenleri ayıklamak için posta listelerinin kaynak yorumlamasını kullanmayı denediler. Rumuzlama sistemlerinin Genel Ağ'da posta ile etkileşimi, bu stratejilerin konaklar (genelde MX ve CNAME DNS kayıtları), posta kutuları (yerel konak rumuzlarının çeşitli türleri) ve çeşitli vekil düzenlemeleri açısından tutarlı çalışmasını neredeyse imkansız hale getirmiştir ve posta sistemleri bunlara yeltenmemelidir *ÖNERİ*.