Exim4, Fetchmail, Procmail ve Mutt ile Tüm E-posta Hesaplarını Tek Merkezden Yönetebilmek

Debian Türkiye sitesinden

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.

1. Exim4 Kurulumu

İlk önce bize gerekli olan paketleri yüklüyoruz;

  1. 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.

  1. 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.

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;

  1. /etc/init.d/exim4 restart

yazıp, Exim4’ü yeniden başlatıyoruz.

2.Procmail Kurulumu

İlk önce Procmail nedir, ne yapar ona bakalım;

  1. 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;

      1. Mail Diziniz nerededir? ###

MAILDIR=$HOME/mail/

      1. Log dosyası nereye kaydedilsin? ###

LOGFILE=$HOME/.procmaillog

      1. Procmail verbose modunda çalışmayacak ###

VERBOSE=no

      1. Mail-listeleri. Burada debian-user-turkish listesine üye olduğumuzu varsayıyoruz. ###
0
  • ^TO_debian-user-turkish

debian-user-turkish/

      1. Lkd email listeleri, LKD’de sadece bir tane değil 20-30 tane mail-listesi Bunlara üye iseniz, hepsini yapmanız lazım.
      1. Eğer Linux ile tüm mesajları almak istiyorsanız, aşağıdaki satır yeterli ancak her listenin mesajlarını ayrı ayrı almak
      1. isterseniz, ozaman Linux yerine linux@liste.linux.org.tr yapamiz lazim.
      1. 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/

      1. Yukarıda görüldüğü gibi, linux listesinden gelenler linux klasörüne, linux-kurulum listesinden
      1. gelen mailer ise linux-kurulum klasörüne yönlendiriliyor. Procmail, zaten mailin ilk kısmına
      1. bakarak bunu yapıyor.
      1. Yukarıdaki 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.

3.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:

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 :

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.

4. 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.

set mbox_type=maildir

set mbox="~/mail/inbox/"

set spoolfile="~/mail/inbox/"

set folder="~/mail/"

set record="~/mail/sent/"

set delete=ask-yes

      1. 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"

      1. Yukarıda 10 satır indexi gösterir.

set pager_index_lines=10

      1. Yeni okunmayan maileri işaretlemez.

set nomark_old

      1. Türkçe karakter için

set charset=iso-8859-9

      1. Header Bilgilerim

my_hdr From: Fatih ARSLAN <sabutay@gmail.com>

my_hdr Reply-To: sabutay@gmail.com

my_hdr X-Operating-System: `uname -sr`

my_hdr X-JabberID: sabutay@jabber.org

      1. Mail gelince, ses geliyor

set beep_new

      1. Aliaslar icin

set alias_file=~/.mutt/alias

source ~/.mutt/alias

      1. Header bölümünde sadece "from", "resent-from" "reply-to",
      1. "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

      1. Header sıralamasi nasıl olsun?

hdr_order From: Resent-From: Reply-To: X-Mailer: User-Agent: Date: To: Cc: Subject:

      1. Mesajlar, thread sıralamasına göre dağıtılıyor.

set sort=threads

      1. Cevaplarken, alıntı yapsın

set include=yes

      1. Alıntı nasıl olsun

set indent_str="> "

      1. Bir mail'in sadece body kısmı değişiyor

unset edit_headers

      1. 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

      1. Mailbox listesi:

mailboxes +inbox +debian-user-turkish +debian-user-german +linux +linux-kurulum +linux-masaustu +linux-sohbet +linux-programlama +dernek +uludag

      1. Fethcmail manuel olarak cagiriyor.

macro index G "!fetchmail\n" "Invoke fetchmail"

macro pager G "!fetchmail\n" "Invoke fetchmail"

      1. Mesajdaki url'leri urlview sayesinde, kopyalayip, herhangi bir web tarayicinisin iletiyoruz.

macro index \cb "|urlview\n"

macro pager \cb "|urlview\n"

      1. 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'

      1. İmzamızın yeri

set signature="~/.signature"

      1. 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 önemli 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.

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 .: Fatih Arslan

Düzenleme: Serdar Aytekin (Herşey için teşekkür ederim Serdar hocam.)

Kaynaklar :

http://www.linuxforen.de/forums/showthread.php?t=161970

http://www.dcs.gla.ac.uk/~lativyn/articles/debian-mutt/

Sürüm . : 0.1

Son güncelleme tarihi .: 02/06/2005

--

Debian-tr.org - Sabutay.org