SMTP Inside Out

İnternet e-postası nasıl çalışır?

Hiç e-posta programınızdaki Gönder düğmesine bastığınızda neler olduğunu merak ettiniz mi? Muhtemelen, sanırım - çalıştığı sürece. Yine de, merak etmenizin sebebi de budur. Bir şeyin işe yaramadığı durumlarda, neyin işe yaramadığını bilmek iyidir. Genellikle, bu çözümün yarısıdır.

SMTP e-posta gönderdiğinizde devreye girer. SMTP , RFC 5321: Basit Posta Aktarım Protokolü'nde tanımlandığı gibi Basit Posta Aktarım Protokolü için kısadır. Posta istemciniz , bir yerden diğerine e-posta almak için bu temiz ve basit yordamı kullanarak SMTP sunucusunu konuşuyor .

Flört

E-posta programınız bir SMTP istemcisi haline gelir, posta sunucunuzun 25 numaralı bağlantı noktasına (genellikle SMTP bağlantı noktası ) bağlanır ve - EHLO diyor. Bilgisayarlar, sonunda, sadece insan ve kibar olmak istediğine göre sayılır. Aslında, kibar olmak için değil, daha sonraki HELO komutunun iki türünü (SMTP komutu genellikle dört karakterden oluşan) içeren SMTP'ye daha sonra eklemeler yapmaya çalışmaz.

HELO'nun İki Aroması

Daha yeni olan EHLO, sunucunun ek özelliklerinin (teslimat durumu bildirimi veya güvenli ASCII karakterleri dışındaki iletileri taşıyabilme yeteneği gibi) desteklemesini sağlar.

Her sunucu bu selamlamaya izin vermeyecek, ancak ek özelliklerin bulunmadığını doğal olarak varsayan bir YARDIMI kabul etmek gerekiyor. Her iki merhaba komutu, istemcinin alan adını ** LO'den sonra belirtmesini gerektirir. Pratikte, bu bir şey gibi görünüyor:

220 mail.domain.net ESMTP Sunucusu
HELO
501 HELO alan adı adresi gerektirir
HELO localhost
250 mail.domain.net Merhaba localhost [127.0.0.1], tanıştığımıza memnun oldum

( Girişim italik yazılmış , sunucuların çıkışı siyah, 5 ile başlayan satırlar bir hatayı gösterir.)

Gönderen

Protokolün geri kalanı, niteliği gerçekten hak ediyor. Bir e-posta göndermek istiyorsanız, MAIL FROM: anahtar kelimelerini kullanarak başlarsınız. Bunu takiben, gönderenin e-posta adresi gelir. Bununla birlikte, parantezleri adrese koymayı unutmayın ( gibi). Örneğimize devam ettikçe:

MAIL FROM:
250 sender@example.com ... Gönderici tamam

Alıcı

Sunucu gönderenin adresini kabul ettikten sonra, alıcı alıcının adresini verebilir. Bu eylemin komutu, RCPT TO: yine oldukça düşündürücüdür. Kendime posta göndermek istiyorum :

RCPT TO: recipient@example.com
250 support@lifewireguide.com ... Alıcı tamam (sıraya girecek)

Sunucunun sıraya girmesi sadece şu anlama gelir: postayı yerel olarak kaydedecek ve diğer tüm sıralı postalarla birlikte aralıklarla (örneğin her 30 dakikada bir) gönderecektir. Bu davranış yapılandırmaya bağlıdır ve sunucu da postayı anında teslim edebilir.

Neredeyse tamamız. Hala eksik olan şey, önemli olan: asıl mesaj.

Mesaj

Artık "zarf" bittiğinde, e-posta mesajının verileri olduğu gibi takip edilebilir. Bu "veri", e-postanın gövdesinin yanı sıra başlık alanlarından oluşur .

Sunucuyu iletiyi kabul eden durumu başlatmak için komut DATA'dır . Bunu takiben, e-posta iletisinin tüm üstbilgi alanları ve sonra da her ikisi de yalnızca bir büyük metin bloğu (veya veri) oluşturuyor. Sunucunun girdinin bittiğini söylemek için satırdaki bir nokta kendi başına kullanılır (\ r \ n. \ R \ n). Bu yüzden mesajımı yolladım:

VERİ
354 Postayı girin, "." Ile biter. kendi başına bir çizgi üzerinde
Mesaj Kimliği:
Tarih: Paz, 17 Ağustos 1997 18:48:15 +0200
Gönderen: Heinz Tschabitscher
Kime: Heinz Tschabitscher
Konu: Özet-Proust Yarışması İçin

Kuğu Dünyasına!
.
250 SAA19153 İleti, teslimat için kabul edildi

Evet, bu, e-postanın Kime: alanına gittiğinden tamamen farklı bir ad verebileceğiniz anlamına gelir. Örneğin, "Bastırılanlar listesi bastırıldı" nı kullanabilirsiniz.

Son

Artık MAIL FROM: ile arasındaki adımları yinelemek istediğiniz kadar çok sayıda e-posta gönderebilirsiniz . . Bununla işiniz bittiyse, sunucuyu QUIT komutu ile bırakabilirsiniz ve bu sadece yaptığımız şey:

QUIT
221 Hoşçakal

Bunu nasıl yapabilirim?

Önemsiz çözüm, giden posta sunucunuza ( e-posta istemcinizin hesap ayarlarında adresini 25 numaralı bağlantı noktasında bulabilirsiniz) telnet yapmaktır.

Daha kolay yol, SMTP protokolünü taklit etmeye ve diyalog boyunca size yol göstermeye çalışan bu Java uygulamasını kullanmaktır.