Forum

SMTP Commands - SMT...
 
Bildirimler
Hepsini Temizle

SMTP Commands - SMTP Komutları

1 Yazılar
1 Üyeler
0 Likes
963 Görüntüleme
Hakan Uzuner
(@hakanuzuner)
Gönderiler: 32997
Illustrious Member Yönetici
Konu başlatıcı
 

SMTP Komutları

Komut Sözdizimi ve Anlamlandırma
Posta aktarımı veya kullanıcı tarafından talep edilen posta sistemi işlevi SMTP komutlarından, SMTP komutları, <CRLF> ile sonlandırılmış karakter dizilerinden oluşur. Komutların kendileri ise ardından parametreler geliyorsa <BOŞKRK> ile yoksa <CRLF> ile sonlandırımış alfabetik karakterlerden oluşur. (Birlikte çalışabilirlik uğruna, SMTP alıcıları sonlandırıcı <CRLF>
öncesinde boşluk karakterliğinin varlığına müsamaha göstermişlerdir.)
Bir posta kutusunun yerel kısmının sözdizimi alıcı site uzlaşımlarına
ve Komut Argümanlarının Sözdizimi bölümünde belirtilen sözdizimine uygun olmalıdır. SMTP komutlarından aşağıda bahsedilmiştir. SMTP yanıtlarından ise SMTP Yanıtları bölümünde bahsedilmiştir.
Bir posta harekatı farklı komutların argümanları olarak iletişimi sağlayan çeşitli veri nesnelerinden oluşur. Dönüş yolu MAIL komutunun argümanı, sevk yolu RCPT komutunun, posta verisi ise DATA
komutunun argümanıdır. Bu argümanlar veya veri nesneleri, harekatı
sonlandıran posta verisi sonu belirteci ile anlaşılan onayı aktarmalı
ve saklamalıdır. Bunun için model, veri nesnelerinin her türü için ayrı
birer tampon bulundurmaktır. Yani, dönüş yolu için bir tampon, sevk
yolu için bir tampon ve posta verisi için bir tampon vardır. Belli
tamponlara bilgi eklenmesine veya bir veya daha fazla tamponun
temizlenmesine sebep olan belli komutlar vardır.
Bazı komutlar (RSET, DATA, QUIT) parametre almayacak şekilde belirtilmiştir. Sunucu
tarafından sunulup istemci tarafından kabul edilen belli eklentilerin
yokluğunda, istemcilerin böyle parametreler göndermemesi gerekir
*ZORUNLU*
ve sunucuların da geçersiz sözdizimine sahip oldukları gerekçesiyle bu komutları reddetmesi gerekir *ÖNERİ*.
Ayrıntılı Selamlama (EHLO) veya Sade Selamlama (HELO)
Bu komutlar, SMTP sunucusuna SMTP istemcisini tanıtmak için
kullanılırlar. Argüman alanı, SMTP istemcisinin varsa tamamen
nitelenmiş alan adından oluşur. SMTP
istemci sisteminin anlamlı bir alan adına sahip olmadığı durumlarda
(örn, adres özdevimli ayrılmıştır ve ters eşleme kaydı (rDNS) yoktur),
istemci adresin IP kodlu adını (bkz, IP Kodlu Adlar) göndermelidir *ÖNERİ*
;
ek olarak istenirse istemciyi tanıtmaya yardımcı olacak bilgiler de
verilebilir. SMTP sunucusu ise, SMTP istemcisine kendisini tanıtmak
için, bağlantı üzerinden bu komuta yanıt olarak bir karşılama iletisi
gönderir.
Bir istemci SMTP bir SMTP oturumunu EHLO komutu göndererek başlatmalıdır *ÖNERİ*.
Eğer SMTP sunucusu, SMTP hizmet eklentilerini destekliyorsa karşılık
olarak bir başarı, başarısızlık ya da hata belirtebilir. Eğer bir SMTP
sunucusu, bu belirtimi ihlal ederek, SMTP hizmet eklentilerinin
hiçbirini desteklemiyorsa bir hata yanıtı üretecektir. Eski istemci SMTP sistemleri, evvelce bahsedildiği gibi, EHLO yerine (RFC 821'de belirtildiği gibi) HELO komutunu kullanabilir *SEÇİMLİK*; (bu bakımdan) sunucuların HELO komutunu desteklemesi ve komutu gerektiği gibi yanıtlaması gerekir *ZORUNLU*. Her halükarda, bir istemci bir posta aktarımına başlamadan önce bir HELO veya EHLO komutu göndermelidir *ZORUNLU*.
Bu komutlar ve bunlara verilen, hem SMTP istemcisini hem de sunucusunu
onaylayan "250 OK" yanıtı, başlangıç aşamasıdır, yani, henüz bir
aktarım yoktur ve tüm aşamaların tabloları ve tamponları temizdir.
Sözdizimi:
    ehlo            = "EHLO" BOŞKRK alan CRLF
    helo            = "HELO" BOŞKRK alan CRLF
Normalde EHLO komutunun yanıtı çok
satırlı bir yanıt olacaktır. Yanıtın her satırı bir anahtar sözcük ve
isteğe bağlı olarak bir veya daha fazla parametre içerir. Çok satırlı
yanıtların normal sözdiziminde, bu anahtar sözcükler yanıt kodundan
(250) sonra gelir ve son satır haricinde koddan sonra bir tire işareti
konur; son satırda ise bir boşluk konur. Olumlu bir yanıtın sözdizimi,
ABNF gösterimi ve [8]'deki uçbirim sembolleri kullanılarak şöyledir:
   ehlo-tamam-yanıtı = ( "250"    alan [ BOŞKRK ehlo-karşılama ] CRLF )
                     / ( "250-"   alan [ BOŞKRK ehlo-karşılama ] CRLF
                      *( "250-"   ehlo-satırı                CRLF )
                         "250"    BOŞKRK ehlo-satırı             CRLF )

      ehlo-karşılama = 1*(%d0-9 / %d11-12 / %d14-127)
                       ; CR veya LF içermeyen bir dizge

         ehlo-satırı = ehlo-anahtar-sözcüğü *( BOŞKRK ehlo-parametresi )

ehlo-anahtar-sözcüğü = (HARF / RAKAM) *(HARF / RAKAM / "-")
                       ; ehlo-anahtar-sözcüğü'ne bağlı olarak ehlo-parametresi
                       ; için ilave sözdizimi

    ehlo-parametresi = 1*(%d33-127)
                       ; <BOŞKRK> hariç herhangi bir karakter ve
                       ; tüm denetim karakterleri (US-ASCII 0-31 dahil)
EHLO anahtar sözcükleri büyük,
küçük ve bunların karışımı harflerle belirtilebildiğinden, bunlar daima
harf büyüklüğüne duyarsız olarak olarak ele alınmalı ve işleme
sokulmalıdır *ZORUNLU*
. Bu, RFC 821 ve Sözdizimsel Genel Prensipler ve Harekât Modeli[146] bölümünde belirtilen uygulamanın basit bir uzantısıdır.
Posta' (MAIL komutu)
Postanın bir veya daha fazla posta kutusuna teslimi veya başka bir
sisteme aktarılması (büyük olasılıkla SMTP kullanarak) için posta
verisinin bir SMTP sunucusuna teslimi başlatılırken bu komut
kullanılır. Argüman alanı bir dönüş yolunu içermekten başka isteğe
bağlı parametreler de içerebilir. Genelde MAIL komutu hiçbir posta aktarımı yokken gönderilebilir; Komutların Sırası bölümüne bakınız.
Dönüş yolu göndericinin posta kutusundan oluşur. Tarihsel olarak, bu
posta kutusu bir konak listesi ile de başlayabilirdi, fakat bu davranış
artık önerilmemektedir (bkz, Kaynak Rotalar).
Postalama kısır döngülerine yolaçan bir yanıt ile ilgili raporlama
iletilerinin bazı türlerinde (posta teslimatı uyarıları veya teslim
edememe uyarıları gibi), dönüş yolu boş olabilir (bkz, Röleleme).
Bu komut, dönüş yolu, sevk yolu ve posta verisi tamponlarını
temizledikten sonra bu komuttaki dönüş yolu bilgisini dönüş yolu
tamponuna yerleştirir.
Hizmet eklentileri için karşılıklı uzlaşılmışsa, MAIL komutu ayrıca, bu hizmet eklentileri ile ilgili parametreleri de taşıyabilir.
Sözdizimi:
  "MAIL FROM:" ("<>" / Dönüş-yolu)
                    [BOŞKRK Mail-Parametreler] CRLF
Alıcının Belirtilmesi (RCPT komutu)
Bu
komut posta verisinin alıcılarını tek tek belirtmek için kullanılır;
çok sayıda alıcı belirtilecekse, komut sayısı alıcı sayısı kadar olur.
Argüman alanı bir sevk yolunu içermekten başka isteğe bağlı
parametreler de içerebilir.
Sevk yolu gerekli olan varış posta kutusundan oluşur. Gönderen sistemlerin, bir kaynak rota olarak bilinen konakların seçimlik listesini üretmeleri gerekir *ÖNERİ*. Alıcı sistemler kaynak rota sözdizimini bilmek zorundadırlar *ZORUNLU*, fakat kaynak rota belirtimini ayırmalı ve kaynak rota sağlanmamış gibi posta kutusu ile ilişkili alan adını kullanmalıdırlar *ÖNERİ*.
Benzer şekilde, röleleme konakları kaynak rotaları ayırmalı ya da yoksaymalı ve isimleri geri dönüş yoluna kopyalamamalıdırlar *ZORUNLU*.
Posta nihai hedefine ulaştığında (sevk yolu sadece varış posta kutusunu
içerir), SMTP sunucusu onu, kendi konak posta uzlaşımları gereğince,
hedef posta kutusuna yerleştirir.
Örneğin,
    MAIL FROM:<[email protected]>
    RCPT TO:<@hosta.int,@jkl.org:[email protected]>
zarf komutları ile röleleme konağı xyz.com'dan alınan posta normal olarak,
    MAIL FROM:<[email protected]>
    RCPT TO:<[email protected]>
zarf komutları ile doğrudan d.bar.org konağına gönderilmiş olacaktır. Kaynak Rotalar ekinde belirtildiği gibi, xyz.com ayrıca iletiyi hosta.int'e de rölelemeyi seçebilir *SEÇİMLİK*:
    MAIL FROM:<[email protected]>
    RCPT TO:<@hosta.int,@jkl.org:[email protected]>
zarf komutları ile hosta.int'e de veya,
    MAIL FROM:<[email protected]>
    RCPT TO:<@jkl.org:[email protected]>
zarf komutları ile jkl.org'a da röleleyebilir.
Hizmet eklentileri karşılıklı uzlaşılmışsa, RCPT komutu ek olarak sunucu tarafından sunulan belli bir hizmet eklentisi ile ilgili parametreleri de taşıyabilir. İstemcinin, EHLO yanıtında, sunucu tarafından sunulan bir hizmet eklentisi ile ilgili olanlar dışında parametre iletmemesi gerekir *ZORUNLU*.
Sözdizimi:
  "RCPT TO:" ("<Postmaster@" alan ">" / "<Postmaster>" / sevk-yolu)
                    [BOŞKRK Rcpt-parametreleri] CRLF
Posta Verisi (DATA komutu)
Alıcı DATA komutuna normalde bir 354 yanıtı gönderir ve komuttan sonrasını göndericiden yollanan veri olarak, ( Satırlar
bölümünde bahsedildiği gibi, CRLF ile biten) satırlar halinde ele alır.
Bu komut, posta verisinin posta verisi tamponuna eklenmesini sağlar.
Deneyimlerin BOŞKRK (boşluk), YSEK (yatay sekme), CR (satırbaşı), ve LF
(satırsonu) dışında kontrol karakteri kullanımının sorunlara yol
açacağını ve mümkün oldukça bundan kaçınılması gerektiğini *ÖNERİ* göstermesine rağmen, posta verisi 128 ASCII karakterin her birini içerebilir.
Posta verisi tek bir nokta içeren bir satırla, yani "<CRLF>.<CRLF>" karakter dizisiyle sonlanır (bkz, Şeffaflık). Bu posta verisi varlığının sona erdiğini gösterir. Bu sonlandırma dizgesindeki ilk <CRLF>'in ayrıca verinin son satırının sonunu, hatta eğer veri yoksa, DATA komutunun sonunu belirttiğine dikkat ediniz. İletinin sonuna boş bir satır eklenmesine yolaçacak ek bir <CRLF> kullanılmamalıdır *ZORUNLU*. Bu kuralın tek istisnası, ilk çıkış SMTP göndericisine aktarılan ileti gövdesinin <CRLF> ile bitmeyen bir sonuncu satır içermesi durumudur; bu durumda ilk çıkış SMTP sistemi ya geçersiz sayarak iletiyi reddetmeli *ZORUNLU* ya da alan SMTP sunucusu "veri sonu" durumunu arayacağından iletiye eksik <CRLF>'i kendi eklemelidir *ZORUNLU* (ikisinden biri zorunlu).
Bazı UNIX sistemlerinde uyumsuz davranışa bir
taviz olarak, çözümlediğinden fazla birlikte çalışabilirlik sorunlarına
sebep olduğu kanıtlanmış sadece <LF> ile biten satırların kabul
edilmesi özelinde, dayanıklılığı arttırmak/mükemmelleştirmek adına
yapılıyor olarak sunulsa bile, SMTP sunucu sistemleri bunu
yapmamalıdırlar *ZORUNLU*
. Özellikle,
"<LF>.<LF>" dizgesi (çıplak, satırbaşı karakterleri
olmaksızın satırsonu karakterleri arasında nokta) posta verisinin
sonunu belirten <CRLF>.<CRLF> dizgesinin eşdeğeri olarak ele alınmamalıdır *ZORUNLU*
.
Posta verisi sonu belirtecinin alınması sunucunun saklanan posta
aktarım bilgisini işleme koymasını gerektirir. Bu işlem, dönüş yolu,
sevk yolu ve posta verisi tamponlarındaki bilgilerin toplanmasını da
kapsar ve komutun işi bittiğinde bu tamponlar temizlenir. İşlem başarıyla tamamlanmışsa, alıcı bir tamam yanıtı göndermelidir *ZORUNLU*. Aksi takdirde, alıcı bir başarısızlık yanıtı göndermelidir *ZORUNLU*.
SMTP modeli bu noktada kısmi başarısızlıklara izin vermez: ya ileti
teslim edilmek üzere sunucu tarafından kabul edilip bir olumlu yanıt
verilir ya da kabul edilmez ve bir başarısızlık yanıtı gönderilir.
Posta verisi sonu alındıktan sonra bir olumlu tamamdır yanıtı
gönderilmesiyle, alıcı iletinin tüm sorumluluğunu almış olur (bkz, Güvenilir Teslimat ve Eposta Yanıtları). Bundan sonra tespit edilen hatalar, İzleme Bilgisi bölümünde açıklandığı gibi, bir posta iletisinde raporlanmalıdır *ZORUNLU*.
SMTP sunucusu rölelemek veya yerine teslim etmek için kabul ettiğinde,
posta verisinin üst kısmına bir izleme kaydı ekler (ayrıca, "Received"
-alındı- satırı veya "zaman damgası satırı" olarak da bilinir). Bu
izleme kaydında, iletiyi gönderen ve alan konakların kimliği ile
iletinin alındığı tarih ve saat belirtilir. Rölelenen iletilerin birden
fazla zaman damgası satırı olur. Bu satırların oluşturulması
sözdizimleriyle birlikte İzleme Bilgisi bölümünde ayrıntılı olarak belirtilmiştir.
DATA komutunun işlemlerinden ayrıca Posta Aktarım Harekâtı bölümünde de bahsedilmiştir.
Sözdizimi:
    "DATA" CRLF
Sıfırlama (RSET komutu)
Bu komut o an ki posta harekatının ister istemez duracağını belirtir. Saklanmış olan gönderici, alıcılar ve posta verisi iptal edilip tüm tamponlar ve durum tabloları temizlenmelidir *ZORUNLU*. Alıcı argümansız bir RSET komutuna bir "250 OK" yanıtı göndermelidir *ZORUNLU*. Sıfırlama komutu istemci tarafından herhangi bir anda gönderilebilir. Oturumda EHLO komutundan hemen önce veya sonra ve posta verisi sonu belirtecinden sonra veya bir QUIT komutundan hemen önce gönderilmesi halinde etki bakımından bir NOOP komutuna eşdeğerdir (etkisizlik anlamında). Bir SMTP sunucusu aldığı bir RSET komutunun sonucu olarak bağlantıyı kapatmamalıdır *ZORUNLU*; Bu eylem QUIT komutuna ayrılmıştır (bkz, Çıkış (QUIT komutu)).
EHLO komutu sunucu tarafından yerine getirilecek bazı ek işlemler ve yanıtlar gerektirdiğinden, normal olarak RSET komutu, biçimsel anlamsallığı aynı olmasına rağmen bile, EHLO komutunu yeniden göndermekten daha verimli olacaktır.
Bu belirtimin amacının aksine, bir SMTP sunucusunun, temel TCP
bağlantısının kapanması veya sıfırlanmasının belirtilerini aldığı bazı
durumlar vardır. Posta sisteminin dayanıklılığını korumak için SMTP sunucuları bu duruma hazır olmalı *ÖNERİ* ve bağlantı kaybolmadan önce bir QUIT komutu almış gibi davranmalıdırlar *ÖNERİ*.
Sözdizimi:
    "RSET" CRLF
Posta Kutusu Doğrulama (VRFY komutu)
Bu komut, argümanında belirtilen bir kullanıcı veya posta kutusunu
alıcının doğrulamasını ister. Eğer argüman bir kullanıcı ismi ise
bilgi, Adres Hatalarını Ayıklama Komutları bölümünde belirtilen şekilde döndürülür.
Bu komutun dönüş yolu, sevk yolu veya posta verisi tamponu üzerinde bir etkisi yoktur.
Sözdizimi:
    "VRFY" BOŞKRK dizge CRLF
Liste ve Üyelik Doğrulama (EXPN komutu)
Bu komut argümanında belirtilen bir posta listesinin doğrulanmasını
ister ve eğer böyleyse, liste üyeliğinin döndürülmesini talep eder.
Eğer komut başarılıysa, Adres Hatalarını Ayıklama Komutları
bölümünde açıklanan bilgiyi içeren bir yanıt döndürülür. Bu yanıt bir
(listenin tek bir üyesi olması durumu) veya daha fazla satır
içerecektir.
Bu komutun dönüş yolu, sevk yolu veya posta verisi tamponu üzerinde bir etkisi yoktur ve her zaman gönderilebilir.
Sözdizimi:
    "EXPN" BOŞKRK dizge CRLF
Yardım (HELP komutu)
Bu komut, sunucunun istemciye yardım bilgisi göndermesini sağlar. Bu komut bir argüman alabilir (örn, bir komut ismi) ve yanıt olarak argümana özgü bilgi döndürebilir *SEÇİMLİK*.
Bu komutun dönüş yolu, sevk yolu veya posta verisi tamponu üzerinde bir etkisi yoktur ve her zaman gönderilebilir.
SMTP sunucuları HELP komutunu argümansız desteklemelidirler *ÖNERİ*, ancak argümanlarla birlikte de destekleyebilirler *SEÇİMLİK*.
Sözdizimi:
    "HELP" [ BOŞKRK dizge ] CRLF
Eylemsizlik (NOOP komutu)
Bu
komut, hiçbir parametreyi ya da daha önce girilmiş hiçbir komutu
etkilemez. Alıcının OK yanıtı göndermesi dışında hiçbir faaliyet
belirtmez.
Bu komutun dönüş yolu, sevk yolu veya posta verisi tamponu üzerinde bir etkisi yoktur ve her zaman gönderilebilir. Bir parametre dizgesi belirtilmişse sunucu bunu yoksaymalıdır *ÖNERİ*.
Sözdizimi:
    "NOOP" [ BOŞKRK dizge ] CRLF
Çıkış (QUIT komutu)
Bu komut, alıcının OK yanıtını göndermesi ve ardından da aktarım kanalını kapatması *ZORUNLU* gerektiğini belirtir.
Alıcı aktarım kanalını, QUIT komutu alınana ve yanıtlanana kadar kasten kapatmamalıdır (bir hata oluşmuş olsa bile) *ZORUNLU*. Gönderen ise QUIT
komutunu gönderip yanıtı almadan aktarım kanalını kasten kapatmamalıdır
(daha önceki bir komuta bir hata yanıtı olsa bile) *ZORUNLU*
. Eğer
bağlantı, daha önce bahsedilmiş olan bozukluklar ya da sistem veya ağ
hataları yüzünden vaktinden önce kapatılmışsa, sunucu askıda bekleyen
herhangi bir hareketi iptal etmeli *ZORUNLU*
, fakat daha önce tamamlanmış olan bir hareketi geri almamalı *ZORUNLU* ve genellikle komut ya da hareket işlemdeymiş de o sırada geçici bir hata alınmışmış gibi davranmalıdır *ZORUNLU* (örneğin, bir 4yz yanıtı).
QUIT komutu her zaman gönderilebilir.
Sözdizimi:
    "QUIT" CRLF
Komut Argümanlarının Sözdizimi
Yukarıda sözü edilen komutların argüman alanlarının sözdizimleri (uygulanabildiği yerlerde [8]'de belirtilen sözdizimleri kullanılarak) aşağıda verilmiştir. Aşağıda verilen bazı gösterimler, sadece Kaynak Rotalar bölümünde anlatılan kaynak rotaları ile birarada kullanılır. HARF, RAKAM, BOŞKRK, CR, LF, CRLF gibi karakterlerden bu belgede söz edilmemiştir; bunlar, "çekirdek" sözdizimi olarak [8 (6. bölüm)]'de ve ileti biçimi sözdizimi olarak [32]'de tanımlanmıştır.
    Dönüş-Yolu = Yol
    Sevk-Yolu  = Yol
    Yol = "<" [ A-d-l ":" ] Posta-kutusu ">"
    A-d-l = Alan-da *( "," A-d-l )
          ; Bu biçime dikkat, "kaynak rota" da denir ve
          ; kabul edilmesi *ZORUNLU*üretilmemesi *ÖNERİ*
          ; ve yoksayılması *SEÇİMLİK* gerekir.
    Alan-da = "@" alan
    Mail-parametreleri = esmtp-param *(BOŞKRK esmtp-param)
    Rcpt-parametreleri = esmtp-param *(BOŞKRK esmtp-param)

    esmtp-param     = esmtp-anah-klm ["=" esmtp-değeri]
    esmtp-anah-klm  = (HARF / RAKAM) *(HARF / RAKAM / "-")
    esmtp-değeri    = 1*(%d33-60 / %d62-127)
          ; "=" hariç herhangi bir KARakter, BOŞKRK (boşluk)
          ; ve denetim karakterleri
    Anah-klm = Hrt-dizge
    Argüman  = Atom
    Alan     = (alt-alan 1*("." alt-alan)) / IP-kodlu-ad
    Alt-alan = Harf-rakam [Hrt-dizge]

    IP-kodlu-ad = "["  IPv4-kodlu-ad  /
                       IPv6-kodlu-ad  /
                       Genel-kodlu-ad "]"
          ; bkz,  IP Kodlu Adlar

    Posta-kutusu = Yerel-kısım "@" Alan

    Yerel-kısım  = Noktalı-dizge / Tırnaklı-dizge
          ; harf büyüklüğüne duyarlılık *SEÇİMLİK*

    Noktalı-dizge = Atom *("." Atom)

    Atom = 1*birmetin

    Tırnaklı-dizge = ÇTIRNAK *tdizge ÇTIRNAK

    Dizge = Atom / Tırnaklı-dizge
Yerel-kısım için yukarıdaki tanım, birlikte
çalışabilirliğin en yüksek derecede olabilmesi için görece serbest
olduğu sürece posta almayı uman bir konak Yerel-kısım'ları
Tırnaklı-dizge biçimini gerektiren veya harf büyüklüğüne duyarlı olmayı
gerektiren posta kutuları tanımlamaktan kaçınmalıdır *ÖNERİ*
. Yerel-kısımların
üretilmesini ve karşılaştırılmasını gerektiren her amaç (posta
kutularının isimlerine özgü olmak gibi) için, tırnaklı tüm biçimler
eşdeğer olarak ele alınmalı *ZORUNLU*
ve gönderen sistem olası en az tırnaklama kullanan biçimde aktarmalıdır *ÖNERİ*.
Sistemler, posta kutularını, ASCII olmayan
karakterlerin (yüksek bitleri 1 olan sekizliler) veya ASCII "denetim
karakterleri"nin (onluk değerleri 0-31 ve 127 olan karakterler) SMTP'de
kullanılmasını gerektirecek şekilde tanımlamamalıdırlar *ZORUNLU*
. Bu karakterler MAIL ve RCPT komutları ile posta kutusu ismi gerektiren diğer komutlarda kullanılmamalıdır *ZORUNLU*.
Tersbölü "\" karakterinin, kendinden sonra gelen karakterin harfiyen
yorumlanmasını (normal yorumu yerine) belirtmek üzere kullanılması
bakımından bir önceleme karakteri oluşuna dikkat ediniz. Örneğin,
"Joe\,Smith", dördüncü karakteri virgül olan dokuz karakterlik bir
kullanıcı alanı belirtir.
Uygulamalarda ve isimlendirmede DNS'nin (örn, temel DNS belgesi RFC 1035'in [22]
2.3.1. bölümüne bakınız) uzun süredir devam eden tutucu kullanımıyla
tutarlılığı ve birlikte çalışabilirliği yükseltmek için, harfler,
rakamlar ve tire işareti dışındaki karakterler SMTP istemcileri ve
sunucularının alan adı yaftalarında görünmemelidir *ZORUNLU*
. Özellikle, altçizgi karakterine izin verilmemiştir. Geçersiz
karakterlerden oluşan bir komut alan her SMTP sunucusu, reddi için
başka bir sebep yoksa, bu komutu bir 501 yanıtı ile reddetmelidir
*ZORUNLU*
.
IP Kodlu Adlar
Bazan, bir konak, alan adı sistemi tarafından bilinmez ve iletişim
engellenir (özellikle, bir hatayı bildirme ve giderme iletişiminde). Bu
engeli aşmak için, bir alan isminin yerine kullanılmak üzere adresin
özel kodlanmış bir biçimine izin verilir. IPv4 adresler için bu biçim,
bir Genel Ağ adresini (IPv4) [123.255.37.2] örneğindeki gibi, köşeli
ayraç içine alınmış, birbirlerinden noktalarla ayrılmış, sıralı, dört
küçük, sekiz bitlik bayta sığabilen onluk tamsayılar biçiminde
kullanılır. En sonunda standartlaşabilen IPv6 ve diğer adres biçimleri
için biçim, IPv6 standartlarının [17]
bir parçası olarak belirtilen biçimde, bir ikinokta üstüste ve adresin
kendisi olarak adres sözdizimini tanımlayan standartlaşmış bir
"yafta"dan oluşur.
Özellikle:
    IPv4-kodlu-ad  = Snum 3("." Snum)
    IPv6-kodlu-ad  = "IPv6:" IPv6-adrs
    Genel-kodlu-ad = Standardize-yafta ":" 1*tdizge
    Standardize-yafta  = Hrt-dizge
          ; Standartlaşma aşamalarındaki bir RFC'de belirtilmiş *ZORUNLU*
          ; ve IANA ile kayıt altına alınmış olmalıdır *ZORUNLU*.

    Snum = 1*3RAKAM  ; 0 ile 255 arasındaki onluk bir tamsayı gösterimi
    Harf-rakam = HARF / RAKAM
    Hrt-dizge  = *( HARF / RAKAM / "-" ) Harf-rakam

    IPv6-adrs   = IPv6-tam / IPv6-kısmi / IPv6v4-tam / IPv6v4-kısmi
    IPv6-onaltı = 1*4ONALTILIKRAKAM
    IPv6-tam    = IPv6-onaltı 7(":" IPv6-onaltı)
    IPv6-kısmi  = [IPv6-onaltı *5(":" IPv6-onaltı)] "::" [IPv6-onaltı *5(":"
                   IPv6-onaltı)]
          ; "::" ile en az 2 tane 16 bitlik sıfır grubu belirtilir.
          ; "::"ye ek olarak 6 gruptan fazlası yoktur.
    IPv6v4-tam   =  IPv6-onaltı  5(":" IPv6-onaltı)  ":"  IPv4-kodlu-ad
    IPv6v4-kısmi = [IPv6-onaltı *3(":" IPv6-onaltı)] "::"
                   [IPv6-onaltı *3(":" IPv6-onaltı)  ":"] IPv4-kodlu-ad
          ; "::" ile en az 2 tane 16 bitlik sıfır grubu belirtilir.
          ; "::"ye ek olarak 4 gruptan fazlası yoktur ve
          ; IPv4-kodlu-ad bulunabilir.
Komutların Sırası
Hangi komutun hangi sırada kullanılacağına ilişkin sınırlamalar vardır.
Posta aktarımını içerecek bir oturum önce EHLO komutu kullanarak ilklendirilmelidir *ZORUNLU*. Posta aktarımı yapılmayacaksa bir SMTP sunucusu bu ilklendirme olmaksızın komut kabul edebilmelidir *ÖNERİ* (VRFY veya EXPN gibi).
İstemci tarafından oturum sırasında bir EHLO komutu gönderilebilir. Oturum başlangıcından sonra gönderilmişse, SMTP sunucusu tüm tamponları temizlemeli ve bir RSET komutu alınmışçasına aşamayı sıfırlamalıdır. Başka bir deyişle, RSET'in hemen ardından EHLO kullanımı gereksizdir ama lüzumsuz komutların çalıştırılmasının başarıma maliyeti yanında zararsızdır.
Eğer EHLO komutu SMTP sunucusu
tarafından kabul edilebilir değilse, 501, 500 veya 502 başarısızlık
yanıtlarından hangisi uygunsa o gönderilmelidir *ZORUNLU*
. SMTP sunucusu bu yanıtlar aktarılıncaya kadar EHLO alınmadan önceki durumunda kalmalıdır *ZORUNLU*.
SMTP istemcisi, eğer mümkünse, EHLO komutundaki alan parametresinin kendi konağı için geçerli bir asıl konak adı (bir CNAME veya MX ismi değil) içerdiğinden emin olmalıdır *ZORUNLU*. Bu mümkün değilse (örneğin, istemcinin adresi özdevimli atanmıştır ve istemci belirgin bir isme sahip değildir), alan ismini bir IP kodlu adla ikame etmeli *ÖNERİ* ve istemciyi tanıtmaya yardımcı olacak ek bilgileri de sağlamış olmalıdır.
SMTP sunucusu, EHLO komutundaki alan adı parametresinin istemcinin IP adresine tekabül edip etmediğini doğrulatabilir *SEÇİMLİK*. Ancak, doğrulama başarısız olursa, sunucu bu sebeple bir iletiyi reddetmemelidir *ZORUNLU*; doğrulama bilgisi başarısızlığı sadece oturum açma ve izleme gecikmelerinden kaynaklanmış olabilir.
NOOP, HELP, EXPN, VRFY ve RSET komutları oturum sırasında veya önceden oturumu ilklendirmeksizin herhangi bir anda kullanılabilir. SMTP sunucuları bunları evvelce bir EHLO komutu alınmamış olsa bile normal olarak (yani, bir 503 kodu döndürmeksizin) işleme almalı *ÖNERİ*; istemciler ise bu komutları göndermeden önce EHLO ile bir oturum açmalıdır *ÖNERİ*.
Eğer bu kurallara uyulursa, RFC 821'deki bir örnekteki, bir EXPN komutuna "550 erişiminize izin verilmedi" yanıtının verilmesi, EXPN komutunun öncesinde bir EHLO
olmadıkça veya erişim yasağı istemcinin IP adresine veya diğer kimlik
kanıtlama/saptama mekanizmalarından kaynaklanmadıkça yanlış olacaktır.
MAIL komutu (veya artık atıl olan SEND, SOML ve SAML
komutları) bir posta aktarımı başlatır. Başlatıldığında, bir posta
aktarımı, sırasıyla, bir aktarım başlatma komutu, bir veya daha fazla RCPT komutu ve bir DATA komutundan oluşur. Bir posta aktarımı RSET (veya yeni bir EHLO) komutu ile terkedilebilir. Bir oturumda birden fazla posta aktarımı yapılabildiği gibi hiç posta aktarımı da yapılmayabilir. MAIL komutu (veya artık atıl olan SEND, SOML ve SAML komutları) zaten açık olan bir posta aktarımında gönderilmemelidir *ZORUNLU*, yani, sadece şu durumlarda gönderilebilir: başlatılmış bir posta aktarımı yoksa veya aktarım başarılı bir DATA komutuyla önceden tamamlanmışsa ya da evvelce bir RSET ile oturum terkedilmişse.
Eğer aktarım başlatma komutunun argümanı kabul edilebilir değilse, bir 501 başarısızlık yanıtı döndürülmeli *ZORUNLU* ve SMTP sunucusu aynı durumda kalmalıdır *ZORUNLU*. Bir aktarımdaki komutlar sunucu tarafından işlenemeyecek derecede sırasızsa, bir 503 başarısızlık yanıtı döndürülmeli *ZORUNLU* ve SMTP sunucusu aynı durumda kalmalıdır *ZORUNLU*.
Bir oturumdaki son komut QUIT komutu olmalıdır *ZORUNLU*. QUIT komutu oturum sırasında herhangi bir başka zaman kullanılamaz, fakat bir
oturum açma komutu gönderilmiş veya alınmış olmasa bile, SMTP istemcisi
tarafından bağlatının kapatılmasını istemek için kullanılması gerekir
*ÖNERİ*
.
Özel Kullanımlı Komutlar
Eklentilerin Tanımlanması ve Kayda Geçirilmesi
bölümünde belirtildiği gibi, "X" ile başlayan komutlar istemci
(gönderen) ve sunucu (alan) SMTP sistemleri arasında karşılıklı
uzlaşılarak kullanılabilir. Böyle bir komutu tanımayan bir SMTP
sunucusunun komutu, "500 Komut tanınmıyor" ile yanıtlaması beklenir. Eklentili bir SMTP sunucusu EHLO komutunun yanıtında bu özel komutlarla ilgili özellik isimlerini listeleyebilir *SEÇİMLİK*.
SMTP sistemlerince gönderilip kabul edilen "X" ile başlamayan komutlar Eklentilerin Tanımlanması ve Kayda Geçirilmesi bölümündeki gereksinimlere uymalıdırlar *ZORUNLU*.
 
Alıntıdır ;
 

Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 22/07/2008 06:18

Paylaş: