magmalinux-courier-nasil-calisir

3. Nasıl Çalışır?

Bu bölümde, internet üzerinden e-posta alımı ve gönderimi konusunda bilgiler verip Courier'ın nasıl çalıştığını kabaca inceleyeceğiz.
 

3.1. İletişim Kuralları

İnternetteki her iletişimde olduğu gibi, e-postaların alımı ve gönderimi sırasında kullanılan iletişimin de kuralları vardır. E-posta alımı sırasında kullanılan iletişim kuralları (protokol), e-posta gönderimi sırasında kullanılan protokolden farklıdır. Sırayla bu protokolleri inceleyelim.

3.1.1. SMTP

SMTP (Simple Mail Transfer Protocol), e-posta gönderilirken kullanılan protokoldür. İstemcimizle e-posta gönderirken, bir SMTP sunucusuna bağlandığımızda, SMTP iletişim kuralları ile haberleşiriz (SMTP sunucusu kendisine verdiğimiz e-postamızı, alıcı kısmındaki kişiye gönderir).

3.1.2. POP3

POP3 (Post Office Protocol 3), istemci tarafından, sunucudan e-postaların alımı için kullanılan protokoldür. Bu protokolde, e-postalar, kullanıcı tarafından tamamıyla indirilir ve e-postaların sunucu tarafındaki kopyaları silinir.

3.1.3. IMAP

IMAP (Internet Message Access Protocol), POP3'e alternatif, e-posta alımında kullanılan gelişmiş bir protokoldür. POP3'te olduğu gibi, e-postaların okunabilmesi için tamamının indirilmesi gerekmez. İstemci ilk önce mesaj başlıklarını sunucudan alır. Kullanıcı bu başlıklara bakarak, herhangi bir e-postayı seçtiğinde, bu e-postanın tamamı indirilir (Aynı zamanda e-postanın bir kopyası sunucu tarafında da bulunur). Belgenin ilerleyen kısımlarında IMAP'in POP3'e göre avantajları ve dezavantajlarından ayrıca bahsedilecektir.

 

3.2. Courier Nasıl Çalışır?

Kabaca Coruier'ın belli durumlarda nasıl çalıştığını inceleyelim.

3.2.1. Dışarıdan e-posta Geldiğinde

 

  1. /etc/courier/smtpaccess dosyasına bakılıp, e-postayı gönderenin IP adresi kontrol edilerek yetkisi olup olmadığı anlaşılır (SMTP sunucunuza zarar vermeye çalışanların IP adreslerini bu dosyaya girerek, sunucunuza erişimlerini engelleyebilirsiniz).
     
  2. /etc/courier/esmtpacceptmailfor dosyasına bakılarak, e-postanın alıcısının alan adı kontrol edilir. Eğer bu alan adı esmtpacceptmailfor dosyasında tanımlı ise aşağıdaki adımlara geçilir, tanımlı değilse Courier karşı tarafa "Relaying Denied" hatası gönderir (Sunucunuz üzerinden gönderilen e-postaların sadece sizin kullanıcılarınızla alakalı olduğunu garantiler. Böylelikle sunucunuzu spam gönderme amacıyla kullanan harici kullanıcılar engellenmiş olur).
     
  3. Courier, kullanıcı bilgilerinin tutulduğu yerde (doğrulama yönteminize göre farklılık gösterebilir), e-posta alıcısının kutusunu (e-postaların bırakılacağı dizin) araştırır. Eğer böyle bir kullanıcı bulunamazsa karşı tarafa "User Unknown" hatası gönderilir. Bulunursa kullanıcının e-posta dizini öğrenilerek, gelen e-posta bu dizine bırakılır.
     

3.2.2. Dışarıya e-posta Gönderildiğinde

  1. Courier, e-postayı göndermeye çalışan bilgisayarın IP adresini /etc/courier/smtpaccess dosyasına bakarak kontrol eder. Eğer yetkisi varsa aşağıdaki adımlara geçilir.
     
  2. E-postanın gönderici kısmına bakılarak, gönderene, kullanıcı adı ve parola sorulur (Uygun şekilde yapılandırılmış ise). Kullanıcı adı ve parola bilgilerini saklamak ve kullanmak için, Courier, bir çok yöntem kullanabilir (Userdb, LDAP, MySQL, PostgreSQL…).
     
  3. Kullanıcı doğrulandıktan sonra, SMTP sunucumuz, bu e-postayı alıcının SMTP sunucusuna teslim eder.

3.2.3. Kullanıcı e-postalarına erişmek istediğinde

Süreç, kullanılan e-posta alım protokolüne (IMAP ya da POP3) göre değişse de kabaca:

  1. POP3 ya da IMAP sunucusu istemciden kullanıcı adı ve parola ister.
     
  2. İstemcinin gönderdiği kullanıcı adı ve parola, Courier'ın kullanıcı bilgilerini sakladığı kaynakta (Örneğin MySQL tablosunda) araştırılarak herhangi bir satırla eşleşip eşleşmediğine bakılır. Eşleşmez ise istemciye kullanıcı adı ve/veya parolanın hatalı olduğu söylenir.
     
  3. Kullanıcı MySQL tablosunda bulunup, parolası doğrulandıktan sonra, aynı tabloda kullanıcının e-posta dizini  (maildir) araştırılır.
     
  4. Kullanıcının e-posta dizinindeki e-postalar (POP3) ya da e-posta başlıkları (IMAP) istemciye gönderilir.