2.1. Temel Yapı
SMTP tasarımı şöyle resmedilebilir:
+-----------+ +----------+ +-----------+ | | | | | Kullanıcı |<----->| | SMTP | | +-----------+ | SMTP |Komutları/Yanıtları| SMTP | +-----------+ | istemcisi |<--------------------->| sunucusu | +-------+ | Dosya |<----->| | ve Posta | |<----->| Dosya | | Sistemi | | | | | |Sistemi| +-----------+ +-----------+ +----------+ +-------+
SMTP istemcisinin iletilmek üzere bir iletisi olduğunda, bir SMTP sunucusuna iki yollu bir aktarım kanalı kurar. SMTP istemcisinin sorumluluğu, posta iletilerini bir veya daha fazla sayıda SMTP sunucusuna aktarmak ve eğer varsa hataları raporlamaktır.
Bir posta iletisinin SMTP istemcisine sunulması ve istemci tarafından hangi posta iletilerinin hangi alan isimlerine aktarılacağının tespiti yerel konulardan olup bu belgede bu konulara değinilmeyecektir. Bazı durumlarda, alan isimlerinin SMTP istemcisine aktarılması ya da istemci tarafından saptanması durumlarında posta iletisinin son hedefini SMTP istemcisi tayin edecektir. SMTP istemcisinin yalıtılmış bir aktarım hizmeti ortamının içinde kaldığı veya POP [3, 26] veya IMAP [6] gerçeklenimleri ile ilişkili SMTP istemcileriyle ortaklaşılan bazı durumlarda, saptanan alan ismi tüm posta iletilerinin rölelelenmesini sağlayan ara hedefi tayin edecektir. Tek tek iletilerle ilişkilendirilmiş hedef alan isimlerine bakmaksızın tüm trafiği aktaran veya dahili olarak tamamlanamayan aktarımlara iletileri yeniden göndermek için kuyruklar sağlayan SMTP istemcileri, bu protokola bir şekilde uyum sağlayabilir fakat tamamen yetkin sayılmaz. Tamamen yetkin SMTP gerçeklenimlerinin, daha az yetkin olanlardan röleleme kullananlar da dahil olmak üzere, bu belirtimde açıklanan tüm kuyruklama, yeniden gönderme ve diğer adres işlevlerini destekleyeceği umulur.
Bir SMTP istemcisinin, bir hedef alan ismi saptayıp, iletinin bir kopyasının aktarılacağı SMTP sunucusunun kimliğini saptaması ve aktarımı gerçekleştirmesi bu belgenin kapsamına girmektedir. Bu anlamda, bir SMTP sunucusuna bir posta aktarımı için bir SMTP istemcisi SMTP sunucusuna iki yollu bir aktarım kanalı kurar. SMTP istemcisi bir SMTP sunucusu çalıştıran uygun bir konağın adresini, bir ara posta aktarımcısı (MX
) veya son alıcı konağın alan adı olarak çözümleyerek saptar.
Bir SMTP sunucusu ya bir nihai hedef ya bir ara "röle" (iletiyi aldıktan sonra aktaran bir SMTP istemcisinin rölesi olarak da kabul edilebilir) ya da bir "ağ geçidi" olabilir (iletiyi SMTP dışında bir protokol kullanarak aktaran anlamında ele alınabilir). SMTP komutları SMTP istemcisi tarafından üretilir ve SMTP sunucusuna gönderilir. SMTP yanıtları ise SMTP sunucusundan SMTP istemcisine komutlara yanıt olarak gönderilir.
Başka bir deyişle, ileti aktarımı özgün SMTP göndericisi ile nihai SMTP alıcısı arasındaki tek bir bağlantıda oluşabileceği gibi bir sürü ara bağlantı üzerinden hoplaya hoplaya da gerçekleşebilir. Her iki durumda da, biçimsel olarak iletinin sorumluluğunun terki durumu ortaya çıkar: protokol, ya bir iletinin teslimi ya da yapamıyorsa başarısızlığın düzgün olarak raporlanması anlamında bir sunucunun sorumluluğu kabul etmesini gerektirir.
Aktarım kanalı kurulup ilk el sıkışma tamamlandıktan sonra, SMTP istemcisi normal olarak posta aktarımını başlatır. Böyle bir hareket, postanın oluşturucusu ve hedefi ile iletinin kendisinin (başlıklar ve bir takım başka yapıları da içererek) aktarımını belirten bir sürü komuttan oluşur. Aynı ileti çok sayıda alıcıya gönderildiği zaman, bu protokol, aynı hedef konaktaki (veya ara rölelerdeki) tüm alıcılar için verinin sadece tek bir kopyasının aktarımını destekler.
Sunucu her komutu bir cevapla yanıtlar; yanıtlar, komutların kabul edildiğini, ek komutların beklendiğini veya bir geçici yahut kalıcı bir hata durumunun mevcut olduğunu belirtebilir. Gönderici veya alıcı belirtilerek komutlarda Eklenti Modeli bölümünde açıklandığı gibi sunucu izinli SMTP ek hizmet istekleri bulunabilir. Komut borulama [13] gibi ek isteklerde bulunarak karşılıklı kabullerle değiştirilebilir olsa bile görüşme, amaca uygun olarak her seferinde tek bir adımı gerçekleştirmek biçiminde yapılır.
Bir posta iletisi aktarımının bitmesinin ardından istemci bağlantının kapatılmasını isteyebileceği gibi başka bir postanın aktarımını da başlatabilir. Ek olarak, bir SMTP istemcisi bir SMTP sunucusuyla olan bağlantıyı, eposta adreslerinin doğrulanması veya posta listesinin üye adreslerinin alınması gibi yan hizmetler için de kullanabilir.
Yukarıda değinildiği gibi, bu protokol posta aktarımı için mekanizmaları sağlar. Bu aktarım normal olarak, gönderen kullanıcının konağı ile alan kullanıcının konağı arasında ancak her iki konak da aynı aktarım hizmetine bağlı olduğunda doğrudan doğruya gerçekleşir. Aynı aktarım hizmetine bağlı olmadıkları takdirde, aktarım bir veya daha fazla SMTP sunucusunun postayı rölelemesi ile mümkün olur. Bir SMTP rölesi veya başka aktarım ortamlarına bir ağ geçidi olarak davranan bir ara konak genellikle alan adı hizmetinin (DNS) posta aktarımcısı mekanizması (MX
) kullanılarak seçilir.
Çoğunlukla ara konaklar açıkça "kaynak" yönlendirme ile değil, DNS MX
kaydı sayesinde tespit edilir (Adres Çözümleme ve Posta Yönetimi, Kaynak Rotalar ve “Kaynak Yönlendirme” bölümlerine bakınız).