NASIL Exim4 Fetchmail Procmail ve Mutt
From Lapis Wiki
Bu makale NASIL bölümü serisinin bir parçasıdır
|
| MasaÜstü • Donanım • Ağ • Dağıtımlar |
| Tarayıcılar• Programlama • Linux ve Oyunlar |
Konu başlıkları |
Önsöz
Exim4, Fetchmail, Procmail ve Mutt ile Tüm E-posta Hesaplarını Tek Merkezden Yönetebilmek
Uzun zamandır e-posta istemcisi olarak Mozilla Thunderbird’ı kullanıyordum ama nedense bit türlü memnun olamadım. Daha öncesinde de Kmail, Evolution, Sylpheed gibi e-posta istemcilerini denemiş hiç bir zaman arzu ettiğim sonuca ulaşamamıştım. Nedense bu tür e-posta istemcileri bana hep sorunlu gelmiştir.
Türkçe konuşan/anlayan Debian kullanıcıları listesindeki bazı liste üyelerinin e-posta istemcisi olarak Mutt’u kullanmaları dikkatimi çekti. Bunun üzerine kolları sıvayıp belkide aradığım e-posta istemcisini buldum diyerek denemeye karar verdim.
İtiraf etmeliyim ki ilk denememde “evet istediğim e-posta istemcisi bu” diyemedim. Sebebi konsoldan “mutt” yazdıktan sonra bomboş bir ekran ile karşı karşıya kalmamdı. Ama Mutt’un ayarlarının yapıldığı bir menü veya dosya mutlaka olmalıydı. Sonunda yardım menüsüne ulaşabilmem uzun sürmedi. Yardım menüsüne biraz göz attıktan sonra sıra “manpage” okumaya gelmişti, “manpage” sonrası da halen istediğim verilere tam olarak ulaşamamıştım.
Evet, işte bu noktada her araştırmada olduğu gibi sıra Google’dan yardım istemeye gelmişti. 1-2 hafta boyunca Mutt’u araştırdım. Bu araştırmalar esnasında fetchmail, procmail gibi yazılımların ne anlama geldiklerini, nerelerde kullanıldıklarını da öğrenmiştim. Evet Mutt’u araştırırken bir çok güzel bilgiye de erişivermiştim. Debian ile öntanımlı olarak gelen MTA olan Exim4 ile birlikte bütünleşik çalışacak yazılım dörtlüsünü sistemimde çalışır hale getirme vakti gelmişti artık.
Sonuç olarak bu belgede, İnternette bulduğum bilgileri ve kendi deneyimlerimi de bir araya getirip Debian kurulu bir bilgisayarda Mutt, Fetchmail, Procmail ve Exim4 ‘ün kurulumu ve yapılandırılmasını izah etmeye çalışacağım. Siz dilerseniz bu yapılandırma şeklini kendi ihtiyaçlarınıza göre daha da farklı olarak şekillendirebilirsiniz. Amacım bu konuda Türkçe bir belge ortaya koyabilmek ve bu konuda başkalarına faydalı olabilmek.
Exim4 Kurulumu
İlk önce bize gerekli olan paketleri yüklüyoruz;
apt-get update && apt-get install cron exim4 fetchmail mutt procmail
Exim4 Debian ile öntanımlı olarak gelen, kurulumu ve ayarlaması kolay olan ayrıca sisteme çok fazla yük bindirmeyen bir MTA’dır. Bu sebeple böyle bir sistem için Exim4 en ideal MTA’lardan birisidir.
dpkg-reconfigure -phigh exim4-config
bunu yaptıktan sonra, su seçeneği secip “tamam” diyoruz. Ardindan gelen sorular içinde “enter”e basip geçelim. İnce ayarları daha sonra ayar dosyalarından elle kendimiz yapacağız.
mail sent by smarthost; recieved via SMTP or Fetchmail (Posta gönderme akıllı makine ile; posta alma SMTP/fetchmail ile)
Sonrasında ise Exim4 ile maillerimiz gönderilirken “From” kısmında hangi e-posta adresinin görüntülenmesini istediğimizi belirteceğiz. Bunun için /etc/email-addresses dosyasında Exim4’ü çalıştırdığımız sistem kullanıcımıza e-posta adresi tanımlaması yapmamız gerekecek. /etc/email-addresses dosyasında;
$LOCALUSERNAME: $EMAIL-ADDRESS
Biçimine uygun tanımlama yapacağız. Mesela ben sistemimde yerel kullanıcı olarak “fatih” hesabını kullanıyorum, “fatih” kullanıcısı ile yerel makinemden Exim4 vasıtasıyla gönderdilen e-postalarda ise sabutay@gmail.com adresinin görüntülenmesini istiyorum. Bunun için /etc/email-addresses dosyasında;
fatih: sabutay@gmail.com
şeklinde bir tanımlama yaptım.
Exim4 ile sorunsuz e-posta gönderebilmek için aşağıdaki ayarlarıda kontrol edelim;
/etc/exim4/update-exim4.conf.conf dosyasını root hakları ile açıp aşağıdaki örnek satırlarin aynısının olup olmadığına bakalım.
| Dosya: update-exim4.conf.conf |
dc_eximconfig_configtype='smarthost' dc_other_hostnames='localhost.localdomain' dc_local_interfaces='127.0.0.1' dc_readhost='debian' dc_relay_domains='' dc_minimaldns='false' dc_relay_nets='' dc_smarthost='smtp.gmail.com' CFILEMODE='644' dc_use_split_config='false' dc_hide_mailname='false' dc_mailname_in_oh='true' |
Ben burada smarthost olarak smtp.gmail.com kullandım. Siz kendi yapınıza uygun olarak farklı bir smarthost kullanıyor/kullanacak olabilirsiniz.
Birde aynı dizin içerisinde bulunan passwd.client dosyasına smtp için gerekli olan bilgileri yazıyoruz. Diyezlereden sonra şöyle bir satır ekleyelim:
*:sabutay:şifre
burada sabutay@gmail.com kullandığım için sabutay yazdım. Şifre yazan yerede benim şifremi yazdım. Bu kısma siz kendi bilgilerinizi yazıp, kaydedip çıktıktan sonra;
/etc/init.d/exim4 restart
yazıp, Exim4’ü yeniden başlatıyoruz.
Procmail Kurulumu
İlk önce Procmail nedir, ne yapar ona bakalım;
apt-cache show procmail
Description: Versatile e-mail processor Can be used to create mail-servers, mailing lists, sort your incoming mail into separate folders/files (real convenient when subscribing to one or more mailing lists or for prioritising your mail), preprocess your mail, start any programs upon mail arrival (e.g. to generate different chimes on your workstation for different types of mail) or selectively forward certain incoming mail automatically to someone.
Yani procmail, filtre görevini yapıyor. Herhangi bir yerden gelen mesajları, bizim ona verdiğimiz yönergelere göre süzgeçten geçiriyor, ve onları yine kendisine belirttiğimiz klasör’e yönlendiriyor. Mesala debian-user-turkish listesinden gelen e-postaları ~/mail/debian-user-turkish dosyasına yönlendiriyor. Bunun icin ~/.procmailrc dosyasini ayarlamamız lazım;
| Dosya: ~/.procmailrc |
### Mail Diziniz nerededir? ### MAILDIR=$HOME/mail/ ### Log dosyası nereye kaydedilsin? ### LOGFILE=$HOME/.procmaillog ### Procmail verbose modunda çalışmayacak ### VERBOSE=no ### Mail-listeleri. Burada debian-user-turkish listesine üye olduğumuzu varsayıyoruz. ### :0 * ^TO_debian-user-turkish debian-user-turkish/ ### Lkd email listeleri, LKD’de sadece bir tane değil 20-30 tane mail-listesi Bunlara üye iseniz, hepsini yapmanız lazım. ### Eğer Linux ile tüm mesajları almak istiyorsanız, aşağıdaki satır yeterli ancak her listenin mesajlarını ayrı ayrı almak ### isterseniz, ozaman Linux yerine linux@liste.linux.org.tr yapamiz lazim. ### Diğerleri için de yukarıdaki Debian örneği yeterli olur. :0 * ^TO_linux@liste.linux.org.tr linux/ :0 * ^TO_linux-kurulum linux-kurulum/ ### Yukarıda görüldüğü gibi, linux listesinden gelenler linux klasörüne, linux-kurulum listesinden ### gelen mailer ise linux-kurulum klasörüne yönlendiriliyor. Procmail, zaten mailin ilk kısmına ### bakarak bunu yapıyor. ### Yuaridaki uygulamalara uymayan diğer mailer ise, inbox klasörüne gidecektir. :0 inbox/ |
Burada mailbox’lardan sonra gelen “/” işaretine dikkat edelim, bununla procmail, klasörleri maildir formatı olarak kullanacaktır. Eğer “/” işareti olmazsa, Mutt sonra, gelen mesajları okuyamaz.
Ardından ise, Klasörleri oluşturuyoruz.
mkdir -p ~/mail/inbox/{cur,new,tmp}
mkdir -p ~/mail/sent/{cur,new,tmp}
mkdir -p ~/mail/debian-user-turkish/{cur,new,tmp}
mkdir -p ~/mail/linux/{cur,new,tmp}
mkdir -p ~/mail/linux-kurulum/{cur,new,tmp}
Tabiki LKD Linux listelerine, yada Debian-listelerine üye olmayanlar, Debian ve Linux listelerini yapmalarina gerek yok, ve ilaveten 30-40 tane mail-listesi kullanan kişiler de, bunları teker teker yapması lazim. Birde tabiki procmail de listeleri yazması lazım.
Yukarıdaki komuta da açıklık getirelim. Mesala;
mkdir -p ~/mail/inbox/{cur,new,tmp}
komutu; kullanıcı dizininde, mail adında bir klasör oluşturuluyor. İçerisinde ise linux klasörü oluşturuluyor. Linux klasöründe de cur,new ve tmp adında 3 tane klasör oluşturulacak. -p ibaresi bu yüzden yazılması lazım.
tmp = Anlık olarak oluşturulan mailer burada yer alıyor, mesala debian-user-turkish listesine, bir mail yazıyorsunuz işte yazdığımız bu mail, debian-user-turkish/tmp de olacaktır.
new = Yeni mesajlar buraya gelecektir.
cur = Yeni mesajlar okunduktan sonra, buraya yönlendiriliyor, mesajlar silinmedigi sürece, burada saklanacaktır.
Fetchmail kurulumu
Fetchmail işi, bizim diğer sunuculardaki, mailerimiz alıp, bize getirmek, adı üstünde “fetch”, Türkçe’de “gidip almak, getirmek” anlamına geliyor.
Sistemi sadece biz kullanacağımıza göre, home dizinimizdeki, gerekli ayarları ~/.fetchmailrc yazarak, işimizi halledebiliriz. Bunun icin ~/.fetchmailrc su satırları yazmamız lazım:
| Dosya: ~/.fetchmailrc |
poll pop.isp.com with protocol pop3, user isp_username there is local_username here, with password isp_password; mda ‘/usr/bin/procmail -f fetchmail’ |
Buradaki ayarı tabiki kendimize göre değiştireceğiz. Bunun için benim kullandığım, Gmail ve @sabutay.org mailerinin ayarlarını yazıyorum :
| Dosya: ~/.fetchmailrc |
poll pop.gmail.com via pop.gmail.com protocol pop3 user ’sabutay’ there with password ‘SIFRE’ is ‘fatih’ here ssl fetchall poll mail.sabutay.org via mail.sabutay.org protocol pop3 user ‘fatih’ there with password ‘SIFRE’ is ‘fatih’ here fetchall mda ‘/usr/bin/procmail -f fetchmail’ |
Yukarıda görüldüğü üzere iki tane farklı e-mail hesabımdan emailerimi alıyorum. Gmailde ssl ibaresi olduğuna dikkat edin, yoksa calışmaz. Poll dan sonra gelen ise POP3 sunucunun adresi. Sunucunun adı da, kullanılan mail hesabına göre değişir.
Bunlar için kullandığınız mail’in sitesinden gerekli bilgileri edinebilirsiniz.
Bunları da ayarladıktan sonra,
fetchmail -vk yaparak , mail hesaplarımızın düzgün şekilde yapılandırılıp yapılandırılmadıklarına bakalım. Bu komut ile, mesalar sunucuda kalacak, oluşan bilgi ve hata mesajlari ise, konsol ekranında görüntülenecek. Yani sanal bir deneme yapıyoruz. Bu deneme eğer problemsiz geçti ise, cron dosyasından fetchmailin mesajları otomatik olarak almasını sağlayabiliriz. Bunun için de konsoldan şu komutu yazalım;
crontab -e
Ardından ise, fetchmailin, her 4 dakikada bir mesajlarımızı almasını sağlayalım.
*/4 * * * * fetchmail -s
-s parametresini sürekli bilgi mesajı vermesin diye ekliyoruz.
Ayarlardan sonra, .fetchmailrc dosyasını bizim haricimizde kimsenin görememesi için;
chmod 600 .fetchmailrc
komutu etkinleştiriyoruz. Bunun sayesinde, sadece siz bu dosyayı görebiliriz. Malum içeresinde sizin şifreleriniz saklanacak.
Mutt kurulumu
Simdi ~/.muttrc dosyasına şu satırları ekliyoruz. Bunların çoğu benim de kullandığım parametler.
İleride kendi ihtiyaçlarınız doğrultusunda değiştirebilirsiniz. Belgenin sonunda bununla ilgili adresleri belirteceğim.
| Dosya: ~/.muttrc |
set mbox_type=maildir set mbox=”~/mail/inbox/” set spoolfile=”~/mail/inbox/” set folder=”~/mail/” set record=”~/mail/sent/” set delete=ask-yes ### Tuş atamaları bind index c change-folder bind pager c change-folder bind index y next-new macro index S “| spamassassin -r” “report message to Vipul’s Razor” ### Yukarıda 10 satır indexi gösterir. set pager_index_lines=10 ### Yeni okunmayan maileri işaretlemez. set nomark_old ### Türkçe karakter için set charset=iso-8859-9 ### Header Bilgilerim my_hdr From: Fatih ARSLAN my_hdr Reply-To: sabutay@gmail.com my_hdr X-Operating-System: `uname -sr` my_hdr X-JabberID: sabutay@jabber.org ### Mail gelince, ses geliyor set beep_new ### Aliaslar icin set alias_file=~/.mutt/alias source ~/.mutt/alias ### Header bölümünde sadece “from”, “resent-from” “reply-to”, ### “x-mailer” “user-agent” “date” “to” “cc” ve”subject” olacak ignore * unignore from resent-from reply-to x-mailer user-agent date to cc subject ### Header sıralamasi nasıl olsun? hdr_order From: Resent-From: Reply-To: X-Mailer: User-Agent: Date: To: Cc: Subject: ### Mesajlar, thread sıralamasına göre dağıtılıyor. set sort=threads ### Cevaplarken, alıntı yapsın set include=yes ### Alıntı nasıl olsun set indent_str=”> ” ### Bir mail’in sadece body kısmı değişiyor unset edit_headers ### Hangi mail-listelerine üye isek onları buraya yazıyoruz. subscribe mutt-users debian-user-turkish debian-user-german linux linux-masaustu dernek linux-kurulum linux-sohbet linux-programlama uludag ### Mailbox listesi: mailboxes +inbox +debian-user-turkish +debian-user-german +linux +linux-kurulum +linux-masaustu +linux-sohbet +linux-programlama +dernek +uludag ### Fethcmail manuel olarak cagiriyor. macro index G “!fetchmail\n” “Invoke fetchmail” macro pager G “!fetchmail\n” “Invoke fetchmail” ### Mesajdaki url’leri urlview sayesinde, kopyalayip, herhangi bir web tarayicinisin iletiyoruz. macro index \cb “|urlview\n” macro pager \cb “|urlview\n” ### abook ayarlari, a tusu ile yeni kullanici eklenilebiliyor. set query_command=”abook –mutt-query ‘%s’” macro index a “|abook –add-email\n” ‘add sender to abook’ macro pager a “|abook –add-email\n” ‘add sender to abook’ ### İmzamızın yeri set signature=”~/.signature” ### Mutt renklendirme color normal default default color hdrdefault cyan default color signature green default color attachment brightyellow default color indicator brightyellow default color quoted green default color quoted1 white default color tilde blue default color tree red default color body cyan default “[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+” color body brightwhite default “(http|ftp|news|telnet|finger)://[^ \”>\t\r\n]*” color body brightwhite default “mailto:[-a-z_0-9.]+@[-a-z_0-9.]+” color header brightmagenta default ^(Date): color header brightyellow default ^Subject: color body brightred default ” [;:]-*[)>(<|]" |
Mutt ile kullanılabilecek diğer uygulamalar
Abook : apt-get install abook
Urlview: apt-get install urlview
urlwiev sayesinde mesajlardaki linkleri, firefox ile açabiliyoruz. Onun için aşağıdaki komutu işletmemiz gerekli. (firefox kullanmayanlar kendi kullandıklari web-tarayıcısını yazsın):
update-alternatives –set x-www-browser /usr/bin/mozilla-firefox
Bundan sonra, mailerde yazılan linkleri, kolaylıkla ctrl+b yaparak seçerek, firefoxda açılmasını sağlayabilirsiniz.
Önemli Bilgiler
Telif Hakkı ve Lisans
Bu belgeyi, Free Software Foundation tarafından yayınlanmış bulunan GNU Genel Kamu Lisansının 2 ya da daha sonraki sürümünün koşullarına bağlı kalarak kopyalayabilir, dağıtabilir ve/veya değiştirebilirsiniz. Bu lisansın bir kopyasını http://www.gnu.org/copyleft/gpl.html adresinde bulabilirsiniz.
Tüm telif hakları aksi özellikle belirtilmediği sürece sahibine aittir.
Yazan
Yazan : Fatih Arslan
Düzenleme : Serdar Aytekin (Herşey için teşekkür ederim Serdar hocam.)
Sürüm . : 0.1 Son güncelleme tarihi .: 02/06/2005
fatih@sabutay.org
fatih@linux-sevenler.org
Bağlantı metni
