Giriş yazımızda da belirttiğimiz gibi iletişim araçlarından belki de en yaygın olarak kullanılan elektronik posta hizmetleri. Aslında bunun için hem sunucu sistemlerinin hem de üçüncü parti uygulamalarının çözümleri var. Piyasada birçok alternatif bulunuyor. Microsoft'un Exchange sunucusu, Linux sistemlerinde Sendmail, Qmail, Postfix ve tabiî ki alternatif üçüncü parti uygulamalar örneğin Merak Mail sunucusu. Biz Sendmail sunucusu üzerinde konuşacağız.
Sendmail bir MTA (Mail Transfer Agent-Posta Aktarım Aracısı) dır. Çoğu Linux dağıtımlarında varsayılan posta aktarım aracısı olarak gelir. Bazı dağıtımlar için istisnalar olabilir. Mesela Suse dağıtım olarak Postfix kullanıyor. Redhat ve türevi sistemlerde Sendmail dağıtımın varsayılanı olarak zaten sistemde kurulu geliyor.
Aslında Sendmail yapılandırılması biraz karışık gelebilir. Bunun sebebi Sendmail sunucusunu yapılandırırken "sendmail.cf" adındaki dosyanın yapısının çok karışık olması. Fakat bunun birde iyileştirilmiş versiyonu olan "sendmail.mc" yapılandırmak çok daha basittir. "sendmail.mc" üzerinde yapılan değişiklik m4 macro işlemcisi ile yeniden yorumlanıp "sendmail.cf" ye işleniyor. Bir nevi sendmail yapılandırma dosyasının kod dosyası diyebiliriz.
Çalışma olarak Sendmail sunucusunun DNS sunucusu ile yakından bir ortaklığı vardır. Yani aldığı ve göndereceği postaları DNS yardımı ile iletecek veya alacaktır. Yapacağımız konfigürasyon aslında basit olacak. Sendmail ile ilgili daha ayrıntılı işlemleri daha sonraki yazılarımızda ele alacağız. Şimdilik basit anlamda sunucumuzu yapılandıralım ve mail alıp göndermeye başlayalım.
Dağıtım olarak Fedora Core dağıtımı kullanacağız. Bu dağıtımın varsayılan olarak Sendmail Posta aktarım aracısını kullandığını daha önce de belirtmiştik. Önce sistemimizde Sendmail paketinin kurulu olup olmadığına bakalım. Unutulmaması gereken bir DNS çözümümüzün de olması gerektiği. O zaman iki servisin paketlerinin kurulu olup olmadığını inceleyelim. RPM paket yönetiminde sistemimizde kurulu olan paketleri sorgulayabiliriz. Bunun için sorgulama parametresi ve sorgulayacağımız paketin ismini vermemiz yeterli olacaktır.
"rpm -q sendmail"
"rpm -q bind"
Her iki paket de kurulu. O zaman önce DNS yapımızı ve MX kaydımızı oluşturalım. Daha önceki BIND ile Active Directory makalemizde bu işlemi yapmıştık o yüzden zone oluşturma adımlarını tekrar anlatmamıza gerek yok diye düşünüyorum. Sadece zone dosyamızın adının "sirket.com.zone" ve içeriğinin de aşağıdaki gibi olduğunu bilmemiz yeterlidir.
"named.conf" dosyası
"sirket.com.zone" dosyası
Zone yapımız hazır bunun çalışıp çalışmadığını kontrol edelim.
Peki DNS tarafındaki olaylarımız hazır ise Sendmail ile ilgili yapılandırmamıza geçelim. Şu an zaten paket kurulu sadece konfigürasyon ile uğraşmamız yeterli olacaktır. Sendmail ayarlarımız "/etc/mail" klasörünün içerisinde bulunuyor. İlk bakacağımız dosya "sendmail.mc". Daha öncede belirttik "sendmail.cf" yapılandırılması biraz karışık bir dosya. O yüzden biz diğer dosya üzerinde değişiklik yapıp bunu yeniden derleyeceğiz. Önce "sendmail.mc" dosyasını açalım. Aslında bu dosya üzerinde yapılacak bir sürü ayar bulunuyor. Ama daha öncede belirttiğimiz gibi şimdilik sadece mail alıp gönderebilecek bir ayar yapıcağız. Daha ileri seviye yapılandırmaları ileriki makalelerimizde inceleyeceğiz. Şunu belirtelim sendmail varsayılan olarak "127.0.0.1" arabirimini kullanır. Buda başka IP yapıları ile iletişim kurup mailleri aktarmamasına sebep olacaktır. Önce bunu size gösterelim.
Öncelikle başka IP yapılarının da bu MTA ile haberleşmesini sağlamalıyız. "sendmail.mc" dosyasını açalım ve varsayılan olarak gelen "DEAMON_OPTIONS(?Port=smtp,Addr=127.0.0.1, Name=MTA')dnl" ayarı kapatalım. Böylece mail sunucumuz bütün IP ler ile iletişim kurabilecektir.
Şimdi bunu "sendmail.cf" dosyasına işlememiz gerekiyor. Aslında yapmamız gereken son derece basit bir işlem. Servisi yeniden başlatmak bu işimizi çözecektir.
Aslında şu an hazır sayılırız. Relay için ilgili IP veya domain lere izin vermemiz gerekiyor. Bunun için yine "/etc/mail" klasörü içerisinde bulunan "relay-domains" dosyasına izin vereceğimiz IP veya Domain isimlerini lıyız. Herhangi bir metin editörü ile açalım ve domain adımızı veya IP mizi buraya ekleyelim.
Aslında yapılandırmamız bitti. Eğer DNS yapımız doğru çalışıyor ise şu an itibarı ile dışarıya mail atabiliyor olmalıyız. Tabiî ki sabit IP miz ve Internet DNS lerinde bir MX kaydımızın olmamasından dolayı şu an için mail alamayacağız. Unutmayalım mail sunucularımız hem mail almalı hem de atabilmelidir. Mail atabilmesinin oldukça kolay olduğunu zaten gösterdik
Şimdi mail atalım. Yine sendmail için client uygulamasını kullanabiliriz. Komut olarak "sendmail -v alıcı_mail_adresi" yazmamız yeterlidir. Daha sonra açılan yere mesajımı yazıp işimiz bitince de "ctrl-d" ile mesajı gönderebiliriz.
Birde gerçek mail adresimize bakalım. Mailimiz burada mı değil mi
Evet, sonuç itibarı ile mail sunucusu çalışıyor ve attığımız mailler istediğimiz yere iletiliyor. Tabi sadece göndermek değil aynı zamanda mail almamız da gerekiyor.
Şirketlerin birbirleri ile haberleşmesinde email ?in network içinde çok önemli bir yeri var. Şirketler bu görevi kendi üstlerine alabilirler. Bunu yapar iken de yukarıda bahsettiğimiz çözümleri kullanabilirler. Aslında her bir çözümün kendine has özellikleri var. Bu daha iyidir veya bu daha güzeldir diyebileceğimiz sistemler aslında kendi içlerinde zaten ayrılıyorlar. Buradaki önemli nokta Sendmail sunucusunun email için başarılı bir alternatif olduğudur. Diğer çözümlerinde kendilerine has güzellikleri olduğu muhakkaktır.
Aslında işimiz daha bitmedi. Sadece komut isteminden mail gönderip almayacağımıza göre sistem üzerinde client protokollerinden POP3 veya IMAP yapılandırmasının nasıl yapılacağını ve web mail araçlarını tanıtacağımız diğer makalemizde görüşmek üzere.