Ezmlm ile E-Posta Listeleri Oluşturulması

Yazan : Serdar Aytekin - serdar~aytekin.web.tr
Versiyon : 1.0.0
Son Güncellenme Tarihi : 21-11-2004

Giriş :

Belgede yazılanların uygulanıp uygulanmaması tamamen uygulayan kişinin sorumluluğundadır. Belgede bahsedilenlerin uygulanması sonucu ortaya çıkabilecek hertürlü zarardan yazar sorumlu tutulamaz. Belge GNU Özgür Belgeleme Lisansının http://www.gnu.org/copyleft/fdl.html adresinde yer alan -son sürümdeki- lisans içeriğine bağlı kalmak koşulu ile aynen yada kısmen dağıtılabilir, yayınlanabilir.

Bu belgenin son sürümüne;

http://www.serdaraytekin.com/docs/os/debian/debian-qmail-ezmlm.html adresinden ulaşabilirsiniz.

Ön Şart :

Ezmlm yalnızca qmail ile çalışır. Bu açıdan daha sisteminizde posta sunucusu olarak qmail'in kurulmuş olması gerekir.

Qmail Kurulumu :

Qmail'in kurulumuna bu belgede yer verilmeyecektir, zira aşağıdaki belgeden qmail kurulumu kısmına göz atarak, kurulumu rahatça yapabilirsiniz.

http://www.serdaraytekin.com/docs/os/debian/sarge-qmail-vpopmail-spamassassin-antivir-squirrelmail.html

Ezmlm Kurulumu :

/etc/apt/sources.list dosyanızda aşağıdakine benzer satırın olmasına dikkat ediniz.

  • deb-src http://ftp.tr.debian.org/debian sarge main contrib non-free

Ezmlm'de qmail gibi lisans problemleri sebebiyle, depolarda kaynak koddan kurulum yapılabilecek şekilde yer alır. Yukarıdaki satırı sources.list'e ilave edip "apt-get update" dedikten sonra;

  • apt-get install ezmlm-src
  • build-ezmlm
Tüm yönergeleri "Enter" ile geçerek kurulumu tamamlayabiliriz.

Posta Listesi Oluşturmak :

İlk dikkat edilmesi gereken, oluşturacağımız e-postanın adresine sahip, kullanıcı e-posta adresi olmaması. Oluşturacağımız listenin haberleşme adresi "liste@liste.com" olacaksa, sistemde bu e-posta adresini kullanan bir kullanıcı olmamalıdır. Sanırım burada bir problem yok.

Şimdi ezmlm ile ilgili ayarların vpopmail kullanan veya vpopmail kullanmaksızın, tek domain üzerinde liste işlemlerini yapmak isteyenler için nasıl olacağını izah etmeye çalışalım.

Vpopmail Kullanıyorsanız (Birden fazla domain varsa):

Şayet sisteminizde vpopmail' de kullanmış iseniz e-posta listesi oluşturmak için aşağıdaki komut uygun olacaktır. Oluşturmak istediğimiz liste ismi "test" ve bu listenin oluşturulacağı domain ismi listeci.com olsun. Kısacası liste adresi test@listeci.com olacaktır.

ezmlm-make ~vpopmail/domains/<domain>/adres ~vpopmail/domains/<domain>/.qmail-adres adres <domain>

kuralına uygun şekilde, yukarıdaki örnek için;

ezmlm-make ~vpopmail/domains/listeci.com/test ~vpopmail/domains/listeci.com/.qmail-test test listeci.com

Vpopmail Olmaksızın (Tek domain için):

Şayet sisteminizde sanal e-posta domainleri yoksa, işlemleriniz tek domain üzerinden yürütüyorsanız, yine yukarıdaki test@liste.com örneği için;

ezmlm-make /var/mail/test /var/mail/.qmail-test test listeci.com

Nasıl bir yapının oluştuğuna bakalım;

# ls -al /var/mail/

.qmail-test -> /var/mail/test/editor
.qmail-test-default -> /var/mail/test/manager
.qmail-test-owner -> /var/mail/test/owner
.qmail-test-return-default -> /var/mail/test/bouncer

Önemli Not :

"ezmlm-make" ile listeyi oluşturduktan sonra oluşan dosyaların kullanıcı ve gruplarını ve izinlerini kontrol ediniz. Mesela vpopmail için yukarıdaki liste@liste.com domaini oluşturduktan sonra;

  • chown vpopmail.vchkpw -R ~vpopmail/domains/listeci.com/.qmail-liste* (sizin sisteminizde farklı olabilir)

şeklinde bir ayarlama uygun olabilir. Kendi sisteminizdeki yapıya göre özellikle, ".qmail-liste*" dosyalarını kontrol edip izinlerini ayarlayınız.

Ekstra Ayarlar

Reply (Yanıtla) ile ilgili Ayarlar :

Bazı e-posta istemcileri tarafından, listeye gelen e-postalara yapılan "Reply" (Yanıtla) tüm listeye değilde, sadece maili listeye gönderen kişiye gidecek şekilde oluşmaktadır. Varsayılan ayarlarda çoğu e-posta istemcilerinde yanıtın tüm listeye ulaşabilmesi için, "Relpy All" veya "Tümüne Yanıtla" gibi bir seçenek ile sağlanabilmektedir. Şayet "Reply" (Yanıtla) denildiğinde, tüm listeye reply edilecek şekilde düzenlemek isterseniz,

~vpopmail/domains/<domain>/<liste>/headeradd

veya

/var/mail/<liste>/headeradd dosyasına;

"Reply-To: liste@domain" ifadesini eklemeniz yeterli olur. Yukarıdaki örnek için bu kısım "Reply-To: test@listeci.com" olacaktır. Yalnız bu konusun artı ve eskilerini, neden varsayılan ayarının bu şekilde olduğuna bakmak isterseniz,

http://cr.yp.to/proto/replyto.html

E-posta İstemcilerinden Listeye Üyelik :

Listeye üyelikte kullanmak istediğimiz e-posta adresimizden liste-subscribe@domain adresine konu başlığı "subscribe" olan e-posta göndermemiz yeterlidir. Yukarıkaki örnek için test-subscribe@liste.com adresine konu başlığı "subscribe" olan e-posta göndereceğiz.

Yukarıdaki e-postamızı gönderdikten sonra, konu başlığı "confirm subscribe to liste@domain" şeklinde olan bir e-posta alacağız. Gelen e-postayı "Reply" (Yanıtla) etmemiz, üyeliğimizi onaylamamız için son adım olacaktır. İşlem başarılı olursa "WELCOME to liste@domain" konu başlıklı bilgilendirme e-postası alacaksınız. Artık listeye göndermek istediğiniz e-postalar için "liste@domain" adresini kullanabilirsiniz.

E-posta İstemcilerinden Listeye Üyelikten Çıkma :

Liste üyeliğinden çıkmak için, daha önce listede üyelik için kulandığımız e-posta adresimizden liste-unsubscribe@domain adresine konu başlığı "unsubscribe" olan e-posta göndermemiz yeterlidir. Yukarıkaki örnek için test-subscribe@liste.com adresine konu başlığı "subscribe" olan e-posta göndereceğiz.

Yukarıdaki e-postamızı gönderdikten sonra, konu başlığı "confirm unsubscribe to liste@domain" şeklinde olan bir e-posta alacağız. Gelen e-postayı "Reply" (Yanıtla) etmemiz, üyeliğimizi iptal etmemiz için son adım olacaktır. İşlem başarılı olursa konu başlığı "GOODBYE from liste@domain" ye benzer e-posta alacaksınız.

Not : Listeye üyelik veya üyelikten çıkma işlemlerinde önemli olan listeadresi-subscribe@domain ve benzer şekilde listeadresi-unsubscribe@domain adresine e-posta göndermektir. Göndereceğimiz e-posta'nın subscribe veya unsubscribe şeklinde konu başlığı içeriyor olmasıda gerekmez. İlgili işlemler için yine ilgili adreslere gönderilecek boş bir e-posta da bu işlemler için yeterli olacaktır.

Listeye Üye Olmayanların Listeye E-posta Göndermelerini Engellemek :

Varsayılan ayarlarda, oluşturacağınız listeye e-posta gönderebilmek için, listeye üye olmanız gerekmiyor. Siz dilerseniz liste yöneticisi olarak, oluşturduğunuz listeye sadece üye olanların e-posta göndermelerini sağlayabilirsiniz.

Bunun için, "editor" dosyasına aşağıdakine benzer ilaveyi yapmanız gerekir,

~vpopmail/domains/<domain>/<liste>/editor dosyası için aşağıdakine benzer şekilde bir kayıt girmelisiniz;

|/usr/bin/ezmlm-issubn '~vpopmail/<domain>/<liste>' || { echo "Sorry, you are not allowed to post to this list."; exit 100; }

/var/mail/<liste>/editor dosyası için,

|/usr/bin/ezmlm-issubn '/var/mail/<liste>' || { echo "Sorry, you are not allowed to post to this list."; exit 100; }

Şeklinde olmalı. <domain> yerine, yukarıdaki örnek için "listeci.com", <liste> yerinede yine yukarıdaki örneğimiz için "test" değerlerini yazmalısınız.

Listeye Dışarıdan Üyeliği Kapatmak (Procmail ile) :

Listeye dışarıdan üyeliğe izin vermemek için mutlaka başka ve daha güzel yöntemler vardır fakat, benim ilk hatırıma gelen bir uygulama şeklide procmail kullanarak bu işlemi gerçekleştirmek oldu. Aynı zamanda bunun procmail'in ezmlm ile kullanılabilmesi için de bir örnek olma mahiyeti var.

Sisteminizde procmail kurulu değilse "apt-get install procmail" ile kurun. Daha sonra,

yine yukarıdaki "editor" dosyasının sonuna aşağıdaki ifadeyi ekleyelim;

| preline procmail -t ./.procmailrc

~vpopmail/domains/<domain>/ dizininde (veya /var/mail/) içerisinde ".procmail" dosyası oluşturup içerisine aşağıdaki ifadeleri yazıyoruz. Siz ".procmail" yerine farklı bir dosya ismi de kullanabilirsiniz.

:0w
* ^To:.*liste-subscribe@domain
/dev/null

Yukarıda liste-subscribe@domain adresine konu başlığı "liste-subscribe@domain" olarak gelen e-postalar /dev/null' a yönlendirilecek, değerlendirmeye alınmayacaktır. Aynı şekilde bu dosyayı başka işlemler içinde kullanabilirsiniz.

Ezmlm ile İlgili Diğer Araçlar :

  • apt-cache search ezmlm

ile depolarda yer alan diğer ezmlm araçlarına bakabilirsiniz.