mutt (ileti yazılımı)          ileti = e-posta.
Yazan: Mengü Yazıcıoğlu
Çoğaltım (c) : Bu belgeyi, kaynak göstermek koşuluyla ve ücretsiz edinilebileceğini ve nereden elde edilebileceğini belirtmek koşuluyla istediğiniz gibi kullanabilirsiniz. Yazarına ve emeğine saygı nedeniyle belge üzerinde ve bilgilerde değişiklik yapsanız da yazarlarını sırasıyla belirterek sizden sonraki değişikliklerde de aynı şekilde sürmesini sağlamalısınız.
Bu belgenin izleyen geliştirmelerinde sizin katkınız özgününe göre çok farklı olsa da burada belirtilen konuların yeni üretilen belgelerde de korunması gerekmektedir.

İlk Yayım Tarihi:    18 Ocak 2001
Son Güncelleme:     23 Kasım 2001

Önsöz:

Yıllarca aradığım kaynakların Türkçelerine ulaşamamak ve yurtdışından getirmek zorunda kalınan kitapların da pahalılığı nedeniyle hep neden Türkçe içerikli bir kitabı üstelik herkesin ya parasız ya da çok ucuz biçimde edinebilecekleri bir ortamda sunmayayım diye düşündüm.

Özellikle 1993 yılından bu yana bilişim sektöründe çalıştığım için ve bu sektörde Türkçe içerikli çok az yayın bulunduğu için, bu ilk kitabımı bilgisayar içerikli hazırlamaya karar verdim. Büyük olasılıkla diğerleri de bilgisayar ağırlıklı olacak.

Aylarca arkadaşlarıma e-kitap (ya da kitap) yazacağımı belirtmeme rağmen bir türlü başlayamadım ve sonunda bahane bulmak yerine işe koyulma gereği duyup, zaman oldukça kitabı yazmaya karar verdim. Üstelik yazacağım ilk konu da Kitap yazmaya neden karar verdiğim ve neden e-kitap olduğuydu. İşte şu an yazıyorum. Ne güzel!

Neden e-kitap?

Basılı kitapları çok severim. Onları her yere götürebilirsiniz. Sayfalarında dolaşmak çok büyük bir haz verir. Asla basılı kitaplardan vazgeçmem. Ama daha çok insana, daha az maliyetle ulaşmak için en güzel yöntem internet. Üstelik okuyucu da çok bir az maliyetle ulaşabilecek böyle kaynaklara. Sonuçta kitap basacak para bulma vb.sıkıcı işlerle uğraşmam gerekmeyecek.

Üstelik kitap üzerindeki düzeltmelerim ve eklemelerim daha kolay olacak. Kitabı yayımlamaya başlamak için hepsini bitirmeyi beklemeyeceğim. Zaman buldukça yazacak ve bunu buradan sunacağım.

Aslında bu giriş başka bir kitap çalışmam, "Unix/Linux'a Giriş" içindi ve oradan
arakladım. Ama hiç değilse kendi yaptığım birşeyi araklıyorum. Başkalarının yaptıklarını değil. :)
 

Neden ve nasıl mutt?

1993 yılından beri Odtü'de Unix işletim sistemini kullanıyorum. Doğaldır ki benim de ilk ileti (e-posta) programım mail ya da pine oldu. Özellikle pine'ı yıllarca kullandım. Ama Odtü BİM'de işe girip sık sık Sistem Yöneticisi Çağrı'nın yanına indikçe onun çalıştırdığı bu mutt denen hoş yazılımı gördüm. pine'dan farklı ve hoş özellikleri olan bir ileti yazılımı görmek ilginçti.. Daha sonra kullanmaya başladıkça özellikle doğaya düşkün biri olarak az kaynak tüketmesini (pine'a göre çok düşük) görmek mutt'a daha çok bağlanmama neden oldu. mutt ücretsiz bir yazılım ve linux'ta, Unix'lerde çalışıyor. İşte kullanmak için bir başka büyük neden. Çoğu insan benim bu text merakımı alaya alsa da text ortam en az kaynak tüketen ortam. PIII'lerin kol gezdiği şu ortamlarda halen 386'larla sisteme bağlanıp ileti okuyabilmek bu sayede mümkün oluyor ve 386'ların çöpe gitmemiş olması da beni çok mutlu kılıyor.

Giriş bu kadar uzun mu olur? O zaman biraz da bilgiye geçelim.
Bir sorunuz, düzeltmeniz ya da başka birşey olursa bana iletin. İşlerin yoğunluğunda yanıt vermekte zorlanabilir ya da gecikebilirim ama yine de yanıt vermeye çalışırım.

Mengü Yazıcıoğlu

ODTÜ BİM
Ankara,Türkiye

İçindekiler:

1.    mutt'la tanışma
1.1.    mutt'u çalıştırmak
1.2.    mutt'un görünümü
1.3.    yazılım hakkında genel bilgiler
1.4.    yapılandırma dosyası .muttrc'yi hazırlama


2.    ileti okuma ve gönderme

2.1    gelen iletileri okuma
2.2    ileti gönderme
1.    mutt'la Tanışma

1.1.    mutt'u Çalıştırmak

Unix ya da unix benzeri (linux gibi) bir işletim sisteminde çalışıyorsanız, mutt yazdığınızda programı kullanmaya başlamalısınız. İlk girdiğinizde size şöyle bir soru sorabilir. /home/.../Mail diye bir dizin yok, yaratayım mı? Buna yes diyebilirsiniz. Aslında bu mutt'un 1.2.5i sürümünde gelmiş bir özellik. Eğer sürümünüz eskiyse bunu hiç sormayacaktır. Sisteminizde mutt olup olmadığını varsa hangi sürümde olduğunu anlamak oldukça kolay.
                mutt -v
yazıp enter'a basın. en üst satırda hangi tarihte çıktığını da belirten sürüm bilgisini göreceksiniz.

Unutmayın Unix'te küçük/büyük karakter ayrımı var. Bu nedenle belirtilen harfleri ve komutları bunu düşünerek girmelisiniz.

1.2.    mutt'un Görünümü

mutt'a girdiğinizde şöyle bir görüntü ile karşılaşacaksınız:
 

q:Quit  d:Del  u:Undel  s:Save  m:Mail  r:Reply  g:Group  ?:Help
  42        Jan 16 ceren enc       (  15) [CC-ALL:2242] katilmak ister misiniz?
  43        Jan 16 ORACLE EĞİTİM   ( 790) Schedule
  44        Jan 17 bahadir uzun    ( 383) [DOGA-L:177] Alısveriste Hileler - Dikkat
  45   T   Jan 16 Katja Moos      (  11) Virtua for METU
  46        Jan 16 Rektor Yardimci (  11) [GENEL-DUYURU:502] Hafta sonu calisma saatlerinin yeniden duzenlenmesi
  47   T   Jan 17 Havva KARADENIZ (  38) Yeni mail adresim
  48   T   Jan 17 sebnem atun     (  31) notlama,donem kayitlar
  49   +   Jan 17 Umid ?energin   (  18) Re: ne oldu virtua isi
  50 N + Jan 17 mengu yaziciogl (   0) selam

 
 
 
 
 
 
 
 
-*-Mutt: /var/spool/mail/mengu [Msgs:50 New:1 431K]---(threads/date)---------------------------------------------------------(end)---
İsteyenler için mutt'un gerçek görünümü: Tıklayın.
Bu resimde birbiriyle ilişkili iletilerin nasıl gösterildiğine dikkat edin.

1.3.    Yazılım Hakkında Genel Bilgiler

Programa ilk girdiğinizde okunmamış ilk iletinin bulunduğu sayfaya ve de iletiye gitmiş bulursunuz kendinizi.
Bulunduğunuz iletinin üzerindeyken Enter'a basarak okuyabilirsiniz.

En tepede q:Quit ile başlayan satırda bulunan harfler size çalıştırabileceğiniz komutlar için bir ipucu. Ama orada gözükmeyip kullanabileceğiniz bir sürü komut daha var ki bunları zamanla göreceğiz.

d'ye bastığınızda üzerinde bulunduğunuz iletiyi sileceksiniz.
u ile sildiğiniz bir iletiyi eski haline getirebilirsiniz.
s ile üzerinde bulunduğunuz iletiyi saklayabilirsiniz.

Yukarıdaki görüntüde olan 42,43 şeklindeki rakamlar gelen iletilerin sıra numaraları. Hemen yanındaki sütünda ise iletinin gönderilişi hakkında size bilgi veriyor. + işareti varsa o sütunda, bu iletinin doğrudan size To: kısmında adresiniz olacak şekilde gönderildiğini anlatır. T harfi varsa , size To: kısmında gönderildiği ama başka insanlara da gönderildiği anlamını taşır. C ise size CC (karbon kopya) olarak gönderilmiş demektir. N, yeni gelmiş bir iletiyi gösterir. Siz bu iletiyi hiç okumamışsınız ve daha önce mutt'a girmemişsiniz demektir.

O olsaydı, bu iletiyi henüz okumamışsınız ama daha önce mutt'a girdiğiniz ve o sırada bu iletinin gelmiş olduğu anlamı çıkar.
D harfi silinmiş bir iletiyi gösterir. İletiler arasında aşağı - yukarı oklarını  kullanarak gezebilirsiniz. Ama oklarla silinmiş bir ileti üzerine gelmezsiniz. Böylece hareketleri daha hızlı yapabilirsiniz.

q'ya bastığınız zaman programdan çıkacaksınız. Ama çıkmak istediğinizde okunmuş iletileriniz varsa size şunu soracaktır:

Move read messages to /home../...../mbox? ([n]/y):

Burada enter'a bastığınızda [ ] içerisindeki değer n olduğu için okunmuş iletileriniz mbox adlı dosyaya taşınmayacaktır. İsterseniz y diyerek okuduklarınızı mbox adlı dosyada tutabilirsiniz. mutt'da bu tür sorularda varsayılan değer [ ] arasında belirtilen değerdir. Siz doğrudan bir seçin yapmak yerine enter'a basarsanız [ ] arasındaki değeri seçmiş olursunuz.

Yukarıdaki soruyu size her seferinde sormasını istemiyorsunuz. Ne yapacaksınız?.

1.4.    Yapılandırma Dosyası .muttrc'yi Hazırlama

mutt'u kullandığınızda isteğinize göre ayarlamalar yapabilirsiniz. Bu tür ayarlamaları .muttrc adı verilen ve mutt'un yapılandırma dosyası ( konfigürasyon dosyası) olan dosyaya yazarak sağlıyoruz.
Örneğin okunmuş iletilerin mbox adlı dosyaya gönderilmesini isteyip istemediğinizi soran yukarıdaki sorudan kurtulmak için şunu yapın. Home dizinindeyken vi .muttrc (başında nokta var) yazın ve i'ye basıp şu satırı ekleyin

                set move=no

Daha sonra Esc'e basıp :wq ile vi'dan çıkın. vi hoşunuza gitmediyse bildiğiniz bir düzenleyici ile (editörle) de yapabilirsiniz. Hatta şu bile olur:

   echo "set move=no" >.muttrc

Aşağıda benim .muttrc dosyamın içeriğini görüyorsunuz:

/home004/mengu/ more .muttrc

set abort_nosubject=no
set record="=sent-mail.`date +%y%m`"
set beep_new=yes
set allow_8bit charset=iso-8859-9
set move=no
set postponed="~/Mail/postponed"
set sort=threads
set noconfirmappend
alias zelha zelhacik  <zelha@yahoo.com>
alias deneme ali,veli,kirk950@yahoo.com

Yukarıda set ile başlayan satırlarla mutt'u kullanırken istediğim yapılandırmaları yapıyorum. alias ile başlayanlar ise ileti atmak istediğim insanların bilgileri ve adreslerini tutuyor.

abort_nosubject

Buna 'no' diyerek atacağım iletilerde Subject (Konu) kısmını boş bırakmışsam bana burası boş, göndermekten vazgeçmek istiyor musun şeklindeki sorudan kurtulmuş oluyorum. Böylece Subject boş olsa da onay vermeksizin ileti gönderebiliyorum.

record

Göndereceğim iletilerin nerede ve nasıl saklanacağıını bu değişkenle belirliyorum. Benim örneğimde Mail dizini altında (= Mail altında demek mutt'da) sent-mail.yilay
biçiminde saklanıyor. Örn. sent-mail.0107. Doğrudan tarih vermek yerine `date +%y%m` komutunu verdiğim için sistem tarihine göre bu yıl ay bilgisi sürekli değişiyor. Eğer siz attığınız tüm iletilerin böyle ayrı ayrı tutulması yerine bir dosyada tutulmasını istiyorsanız set record="=gidenler" diyerek Mail altında gidenler dosyasında tutulmasını sağlayabilirsiniz.

beep_new

Bir ileti geldiğinde size sesli haber vermesini istiyorsanız yes diyorsunuz

set allow_8bit charset=iso-8859-9

allow_8bit diyerek 8-bitlik verilerin ileti gönderilirken 7-bitliğe dönüştürmesini sağlıyor ?
charset=iso-8859-9 diyerek ise iletiyi okuduğunuz terminalinizin ve yazarken görebileceğiniz karakterlerin dilini ayarlıyor. Bunu koyarak Türkçe desteği vermiş olduk.

set move=no

İşte bu çok önemli. mutt'tan çıkarken okunmuş iletilerinizin mbox adlı posta kutusuna taşınmasını onaylatacak soruyu sormasından kurtulmuş oluyorsunuz.

set postponed="~/Mail/postponed"

İleti yazmaya başladınız ve daha göndermeden çıkmak istediniz. Bu iletiyi daha sonra çağırarak devam edip gönderebilirsiniz. Yukarıdaki değişken, göndermekten vazgeçtiğiniz ama sonra devam etmek istediğiniz iletileri hangi dosyada saklayacağınızı tanımlıyor.

set sort=threads

mutt'a girdiğinizde iletiler nasıl dizilsin? Bunu sort ile ayarlıyorsunuz. Ben thread seçerek iletilerin ilişki-tarih sıralı gelmesini sağlamışım.
Diğer seçenekler:

date ya da date-sent    : gönderiliş tarihe göre
date-received                : geliş tarihine göre
from                                   : nereden geldiğine göre
size                                     : büyüklüğüne göre

score,subject,to gibi seçenekler de var.

set noconfirmappend

Bu satırı koyduğumuzda gelen bir iletiyi saklamak için s'ye bastığınızda =pk_adi diyerek pk_adi adlı dosyaya eklemek istediğinizde sorduğu bu dosyanın sonuna ekleyeyim mi sorusunu bir daha sormamasını sağlamış oluyorsunuz.

alias zelha zelhacik  <zelha@yahoo.com>
alias deneme ali,veli,kirk950@yahoo.com

alias'lar ile bir çeşit adres kitaplığı oluşturmuş oluyorsunuz.
Böylece zelha'ya ileti atmak istediğimde uzun uzun adresini yazmak yerine To: kısmına zelha yazıyorum, karşıma onun uzun adı (ya da ne tanımlamışsam o) ve ileti adresi geliyor. Ayrıca birden çok kişinin ileti adresini de tanımlayabilirim. Diyelim ki ortak sunucumuzda ali, veli diye iki kullanıcı ve ayrıca kirk950@yahoo.com diye başka bir adres olsun. mutt'ta ileti gönderirken To:'ya deneme yazınca karşıma ali@metu.edu.tr,veli@metu.edu.tr,kirk950@yahoo.com adresleri doğrudan gelecektir.
Böylece bir çeşit liste oluşturmuş da oldum.

2.    İleti okuma ve gönderme

2.1.    Gelen İletileri Okuma

Bulunduğunuz iletinin üzerinde enter'a basarsanız o iletiyi okuyabilirsiniz.

Diyelim ki silinmiş bir iletiyi okumak istediniz. Çok kolay. Onun üstündeki bir iletiye gidip u'ya basarak undelete yapabilir ya da doğrudan o iletinin numarasını yazarak onun üzerine gidersiniz. Siz bir rakama bastığınız anda şöyle bir soru gelecektir:

Jump to message: 4            < Burada sayınızı bitirip enter'a basarsanız ilgili iletiye gidersiniz. Bu silinmiş bir ileti olsa dahi gider ve enter'a basarak okuyabilirsiniz.

Diyelim ki gelen bir iletiyi saklamak istediniz. Bu durumda 's' harfine basarsanız size hangi posta kutusuna (PK)  kaydetmek istediğinizi soracaktır:

            Save to mailbox ('?' for list): =taskazan

Saklamak istediğim ileti taskazan adlı kullanıcıdan geldiği için doğrudan taskazan adlı PK'ye saklamayı öneriyor. ?'ne basarak daha önceden yarattığınız PK'ları görebilirsiniz. Ya da dogrudan =posta_kutusu_adı diyerek posta_kutusu_adı adlı bir postakutusuna kaydedersiniz. Örneklersek
            =doga

Eğer daha önceden böyle bir PK yaratmamışsanız, size yaratmanız için soracaktır.

Baska bir zaman herhangi bir PK'ye saklamış olduğunuz iletiyi görmek için ise giriş ekranında 'c' harfine bastıktan sonra =posta_kutusu_adı (örneğimizde =doga) yazarak bu addaki PK'nin iletilerine gidersiniz.
Küçük bir uyarı =posta_kutusu_adı' nı tamamen yazmak yerine = 'den sonra birkaç harfi yazıp daha sonra Tab tuşuna basabilirsiniz. Diyelim ki daha önceden list_egitim, list_doga diye iki ayrı PK'niz var. Bu durumda =li diyerek Tab'a bastığınızda karşınıza
            =list_
gelecektir. Bu durumda e'ye basıp Tab'a yine basarsanız =list_egitim gelecektir.
Ama isterseniz =li yazıp Tab ve yine Tab'a basarak "li" ile başlayan tüm PK'larınızı görebilirsiniz.

2.2.    İleti Gönderme

Doğrudan birisine bir ileti göndermek istiyorsanız m harfine basabilirsiniz. Karşınıza kime gödermek istediğinizi soran

---Mutt: /var/spool/mail/mengu [Msgs:52 New:1 Old:1 434K]---(date-received/date)--------------------------------------------------(end)---
To:_

en alttaki To: diye bir alan çıkacaktır. Buraya kime göndermek istiyorsanız onun adresini yazabilirsiniz. Eğer aynı alan adı altında birine göndermek istiyorsanız @ dan sonraki adresi yazmanız gerekmeyecektir. Örneğin: mutt'a adresi metu.edu.tr ile biten bir kullanıcıyla bağlandıysam, To kısmına yildiray@metu.edu.tr yazmam gerekmez. Doğrudan yildiray yazabilirim. Adres otomatik olarak eklenecektir. Ama mengu@netscape.com adresine ileti atıyorsam To: bölümüne bu şekilde yazmam gerekir. Böylesi uzun adresleri yazmak yerine kolayca bir sözcük yazarak adresi çağırabilirsiniz.

Buna alias deniyor ve nasıl tanımlanacağını alt satırlarda göreceksiniz.

Adresi yazıp enter'a basarsanız , bu sefer yine en altta
Subject:
diye çıkacak ve buraya iletinizin içeriğini özet olarak yazmanızı bekleyecektir.
Bunu da yazıp enter'a basarsanız iletinizi yazacağınız ekran karşınıza çıkacaktır. Buradaki editörünüz vi 'dır ki vi çok da hoş bir editördür.
(editörün Türkçesi nedir bilen varsa göndersin lütfen). Belki vi hakkında da birşeyler yazarım ileride.
Neyse konuya dönelim. Ekranda şöyle birşeyler olmalı:
 

--
Mengu Yazicioglu
ODTU BIM

~
~
~
~
~
~
~
~
~
~
~
"/tmp/mutt-orca-128734-7" 5 lines, 32 characters

-- ve sonraki iki satır benim imzam oluyor. Herhangi bir ileti programına girdiğimde sunucu üzerindeki, atacağım iletiye bunu ekliyor.
Bunu da şöyle yaratıyorsunuz. home dizininizde .signature diye bir dosya yaratıyorsunuz. Bunun içine de istediğinizi yazıyorsunuz. Ama unutmayın uzun satırlı imzalar hiç de hoş karşılanmıyor.

Bir ileti atacağınız zaman ise .signature dosyası okunuyor ve Yukarıdaki gibi ekliyor.
vi ile bir dosya açtığınız zaman ilk başta yazma konumunda olmazsınız. Girdiğiniz sayfa yazma korumalı diye düşünün.
Yazma konumuna girmek için i harfine basmalısınız. Sanırım bu insert'ün (giriş) i'si.
Böylece iletinizi yazıp işinizi bitirdiğinizde :wq'ye basarak vi'dan çıkarsınız ve şöyle bir ekranla karşılaşırsınız:

y:Send  q:Abort  t:To  c:CC  s:Subj  a:Attach file  d:Descrip  ?:Help
    From: mengu yazicioglu <mengu@metu.edu.tr>
      To:  mengu <mengu@unixseverler.org.tr>
      Cc:
     Bcc:
 Subject: mutt
Reply-To:
     Fcc: =sent-mail.0101
 
 

===== Attachments =====
-   1 /tmp/mutt-orca-128734-7                                                                                         [text/plain, 7bit, 0.1K]

Diyelim ki subject'i değiştirmek istediniz. Bu ekranda s'ya basarak subject'i değiştirebilirsiniz. Ya da t ile
göndereceğiniz kişiyi. c'ye basarsanız bu iletiyi başka birisine(birilerine) de iletebilirsiniz aynı zamanda.
a'ya basarak iletinize bir dosya ekleyebilirsiniz.
Yukarıda Fcc: kısmında yazan bölüm göndereceğiniz iletinin nerede saklanacağını belirtmek için. Bunu doğrudan
mutt'un ayarlama( configuration) dosyası olan .muttrc'den okutabilirsiniz.
Bu yüzden sizde Fcc: kısmı boş gözükecektir. Bu da göndereceğiniz iletinin saklanmayacağı anlamına gelir. Ben bunu öğrenene kadar gönderdiğim birkaç ileti uçmuştu. Ama siz şanslısınız, artık biliyorsunuz.
Burası boşsa ve siz gönderdiğiniz iletiyi saklamak istiyorsanız  f   harfine basıp bir dosya adı girebilirsiniz.

Peki yazdığım ileti nerede?
Attachments altında 1 numara ile gösterilen dosyada. Bunun görmek için üzerindeyken enter'a basabilirsiniz. Yok içeriğini değiştirmek istiyorsanız "e" ye basmalısınız. Yine vi editörü açılacak ve iletinizi değiştirebileceksiniz.

Tüm işleriniz bitti ve artık göndermek istiyorsunuz. O zaman "y" ye basmak yeterli olacaktır. Eğer subject kısmına birşey girmediyseniz sizden girmenizi  isteyecektir. Ama bazen subject'siz ileti göndermeniz de gerekibilir. Bu durumda yine .muttrc'ye bir satır eklemek gerekecek size subject sormasın diye.

Göndermekten vazgeçtiniz ya da sonra göndermek istiyorsunuz. O zaman "q" ya basın. Size
            Postpone this message? ([y]/n):
diye bir soru soracaktır. n derseniz bu iletiyi göndermekten vazgeçmiş olursunuz. İletiniz saklanmayacaktır.

y derseniz yazdığınız ileti postponed adlı dosyada saklanacaktır ve siz ne zaman yeni bir ileti gödermek isterseniz
Recall postponed message? ([y]/n): diye sorarak ertelediğiniz iletiyi açıp açmak istemediğiniz soracaktır.
y ile istediğiniz, n ile istemediğinizi belirtebilirsiniz. y derseniz ertelemiş olduğunuz ileti (ler) ekrana gelecektir.
n derseniz yeni bir ileti yazabilirsiniz. Ama yine de ertelediğiniz ileti silinmez. Ta ki postponed dosyasını silene kadar ya da ertelediğiniz iletiyi çağırıp gönderene ya da bir daha ertelemeden vazgeçene kadar.