SMTP (Simple Mail Transport Protocol) Nedir?

Şadi Evren Şeker’in “İnternet Nasıl Çalışır?” adlı video serisinden yola çıkarak, kendisi ile birlikte bir e-kitap yayınladıktan sonra, Kodlayarak Hayat üzerinde de herkesin videoların özetine ve kaynaklarına kolaylıkla ulaşabileceği bir eğitim serisi oluşturmak istedim. Serideki tüm yazıları bu kategori altından bulabileceğiniz gibi; her bölümde, bölümün konusuna ilişkin video’ya da erişmeniz mümkün.

SMTP, e-postalarınızı göndermenizi sağlayan bir protokoldür.

ASCII metin planlarına uygun olarak yazılmıştır. Dolayısı ile içine bakıldığında herkesin okuyabileceği anlaşılır metinler yer almaktadır.

Formatı zamanla değişebilmekle birlikte, içerisine eklemeler yapılabilecek ve Html formatına dönüştürülebilir bir yapıya sahiptir.

SMTP üzerinde herhangi bir güvenlik protokolü bulunmamaktadır. Ama bağlantılar üzerinde güvenlik sağlanabildiği için (TCP/IP), sizin sunucuya bağlanmanız güvenli hale getirilebilmektedir. Dolayısıyla güvenlik sağlayabilen portlarımız bulunmakla birlikte, sağlayamayanlar da bulunmaktadır.

SMTP Formatı

SMTP yapısı incelendiği zaman, aynı Html kodlarında olduğu gibi bir header ve body kısmı bulunmaktadır. Header kısmında mesajın kime gönderildiği, konusu ve tarihi yer almaktadır. Body kısmı ise kullanıcı mesajı açtığı zaman göreceği bölümlerden oluşmaktadır. Herhangi bir metin editöründe açtığınız zaman, anlaşılabilir olarak görülen SMTP içeriğini örnek olarak aşağıdaki resimden inceleyebilirsiniz.

Ayrıca postalar SMTP ile oluşturularak gönderilse bile, alıcı tarafın posta sunucuları da SMTP formatının header kısmına eklemeler yapabilmektedirler. Bunlardan bir tanesi Received kısımlarıdır. Örneğin bir posta çeşitli nedenlerden dolayı alıcı tarafın sunucusuna geç iletilebilir ve bu tarih kullanıcıya yansıyabilir. Olası aksaklıkların önlenebilmesi için alıcı tarafın posta sunucusu da üzerine tarih bilgisini eklemektedir. Received satırına tarih haricinde zaman çizelgesi (ne kadar sürede gönderildiği) ve kaynağı gibi bilgiler de eklenmektedir.

Ayrıca bir diğer ekleme yapabilen kısım ise Spam kontrolünü sağlayan yapılardır. Spam kontrollerini sağlayan yapılar hangi yazılım tarafından, hangi sürüm ile yapıldığını veya sonucu bize aktarmak için header kısmına bilgi ekleyebilmektedirler.

NOT: Spam herhangi bir mesajın, kullanıcının istek ve rızası olmadan aldığı postaların genel ismidir.

Saat Dilimleri (Timestamp)

Postalarınızı gönderirken dünya üzerinde yaşanabilecek saat farkından dolayı, SMTP bu sorun için de çözüm olmakta ve gerekli düzenlemeleri yapmaktadır.

Dünya üzerinde farklı ülkelerin saatlerini konumlarına göre ifade etmesi, İngiltere’de yer alan Greenwich noktasına göre düzenlenmektedir. Çoğu zaman gördüğünüz GMT+3 (Greenwich Mean Time) ifadesi o noktaya göre, 3. Saat dilimi içerisinde yer aldığınızı göstermektedir.

E-Posta Ekleri (E-Mail Attachments)

E-Postanızı göndermeden önce, postanıza ek olarak dosya (resim, metin vb.) gönderilebilmektedir. Fakat SMTP, daha önce de değinildiği üzere açık bir metin olarak düzenlenmektedir. Dolayısıyla resim dosyalarının da ek olarak gönderilebilmesini sağlamak için MIME (Multipurpose Internet Mail Extensions) geliştirilmiştir.

MIME, İnternet üzerinde kullanılan bir posta protokolüdür ve Türkçesi çok amaçlı internet posta uzantıları olarak çevrilmiştir. Açık ve ASCII karakter kodları ile birlikte çalışan bir protokoldür ancak, ASCII karakterleri dışında da dönüşümler gerçekleştirerek (fotoğraf dosyaları) dosya gönderimi yapabilmektedir. STMP dosyalarının body kısmına dosya eklemesi yapabilmektedir ve bu dosyalara resimler de dahil olabilmektedir.

NOT: Bu hususta ikilik tabana ait bilgileri, daha önce görmüş olduğumuz ASCII tablosu yardımı ile dönüştürülememektedir. Bu dönüştürme işlemi için özel olarak düzenlenen tablolar kullanılmaktadır.

Normal şartlarda resim dosyaları 1 ve 0’lardan oluşan dosyalardır. 1 ve 0’lardan oluşan ikilik sisteme ait bu bilgileri karakterlere çevirmekte ve karaktere çevrilebilen dosyayı da alıcının posta sunucusu alabilmektedir.

Örnek bir MIME mesajı aşağıdaki resimde verilmiştir.

MIME

Mesajı incelediğimizde, en üstte MIME mesajının sürümünün iletildiğini görebiliriz.

Hemen altında Content – Type kısmında mesajın içeriği hakkında bir bilgi yer almaktadır. Eğer bu kısımda text yazıyorsa metin, application olarak belirtildiyse bir uygulama, audio olarak yazılıyorsa ses dosyası, image ise bir resim olduğunu göstermektedir.

Content-Type bölümünde, text/plain olarak iki ifade bulundurmasının sebebi, ilk kısımda dosyanın ne olduğunu, ikinci kısımda ise türünü (alt başlığını) göstermek içindir.

Fakat bazı dosyaların gönderilmesi engellidir. Örneğin oluşturulan exe. dosyalarının çoğu kötü amaçlı yazılımlar için kullanıldığından ve bu dosyaların açılmadan taranamaması dolayısıyla birçok program tarafından gönderilmesi engellenmiş bulunmaktadır.

NOT: Boundary karşılığında bulunan ifade, mesajın birbirinden ayrıldığı noktaları göstermektedir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.