Zimbra’da Dağıtım Listesi ve Grup E-posta Yönetimi
Bir kurumda yüzlerce kullanıcı varken “tüm satış ekibine mail at” demek kulağa basit gelir, ama arkasında düzgün kurulmamış bir dağıtım listesi yoksa o mail ya kaybolur ya da yanlış kişilere gider. Zimbra’da dağıtım listesi ve grup e-posta yönetimi, özellikle orta ve büyük ölçekli organizasyonlarda kritik bir yönetim becerisidir. Bu yazıda hem GUI üzerinden hem de komut satırından bu işleri nasıl yapacağınızı, gerçek dünya senaryolarıyla birlikte ele alacağız.
Dağıtım Listesi Nedir, Ne İşe Yarar?
Zimbra’da dağıtım listesi (Distribution List), bir e-posta adresine gönderilen mesajın otomatik olarak birden fazla alıcıya iletilmesini sağlar. Bunu basit bir alias’tan ayıran şey, üye yönetiminin dinamik olması ve çeşitli kısıtlamalar uygulanabilmesidir.
Gerçek dünyada bu yapıyı şu senaryolarda kullanırsınız:
- Departman bazlı iletişim:
[email protected]adresine gelen mailler tüm muhasebe ekibine dağıtılır - Proje grupları: Geçici bir proje için oluşturulan grup, proje bitince kolayca devre dışı bırakılır
- Duyuru listeleri:
[email protected]sadece yöneticilerin mail atabileceği, herkesin aldığı bir liste olarak yapılandırılır - Destek kuyruğu:
[email protected]maili birden fazla destek personeline yönlendirilir
Zimbra Admin Panel Üzerinden Dağıtım Listesi Oluşturma
Admin paneline https://mail.sirket.com:7071/zimbraAdmin adresinden giriş yaptıktan sonra sol menüden “Manage” > “Distribution Lists” yolunu izleyin.
“New” butonuna tıklayın ve açılan form üzerinde şu alanları doldurun:
- Name: Liste adı (örn.
satis) - Domain: Hangi domain altında olacağı (örn.
sirket.com) - Display Name: Kullanıcıların göreceği isim (örn.
Satış Ekibi) - Description: İsteğe bağlı açıklama
Listeyi oluşturduktan sonra “Members” sekmesinden kullanıcıları ekleyebilirsiniz. Kullanıcı adı yazıp “Search” diyerek mevcut hesapları bulun ve listeye ekleyin.
Komut Satırından Dağıtım Listesi Yönetimi
Gerçek sysadmin işi terminal üzerinden yapılır. Zimbra’nın zmprov aracı, tüm provizyon işlemleri için kullanılan temel komuttur. Önce Zimbra kullanıcısına geçin:
su - zimbra
Yeni Dağıtım Listesi Oluşturma
zmprov cdl [email protected]
displayName "Satış Ekibi"
description "Satış departmanı dağıtım listesi"
zimbraMailStatus enabled
Bu komutla [email protected] adresine bir dağıtım listesi oluşturulur. zimbraMailStatus enabled parametresi listenin aktif olduğunu belirtir.
Listeye Üye Ekleme
# Tek kullanıcı ekleme
zmprov adlm [email protected] [email protected]
# Birden fazla kullanıcı aynı anda
zmprov adlm [email protected]
[email protected]
[email protected]
[email protected]
[email protected]
adlm: addDistributionListMember komutunun kısaltmasıdır.
Listeden Üye Çıkarma
zmprov rdlm [email protected] [email protected]
rdlm: removeDistributionListMember komutunun kısaltmasıdır.
Mevcut Listeyi ve Üyelerini Görüntüleme
# Liste bilgilerini görüntüle
zmprov gdl [email protected]
# Sadece üyeleri listele
zmprov gdlm [email protected]
Tüm Dağıtım Listelerini Listeleme
zmprov gadl
Belirli bir domain altındaki listeleri görmek için:
zmprov gadl sirket.com
Toplu Üye Ekleme: Script ile Otomatizasyon
Yüzlerce kullanıcıyı tek tek eklemek kimsenin işi değil. Diyelim ki bir CSV dosyanızda çalışan listesi var ve hepsini bir grupta toplamak istiyorsunuz.
#!/bin/bash
# bulk_add_members.sh
# Kullanim: ./bulk_add_members.sh [email protected] kullanicilar.txt
LISTE=$1
DOSYA=$2
if [ -z "$LISTE" ] || [ -z "$DOSYA" ]; then
echo "Kullanim: $0 <liste_adresi> <kullanici_dosyasi>"
exit 1
fi
su - zimbra -c "
while IFS= read -r kullanici; do
if [ -n "$kullanici" ]; then
echo "Ekleniyor: $kullanici"
zmprov adlm $LISTE $kullanici
fi
done < $DOSYA
"
echo "Tum kullanicilar eklendi."
kullanicilar.txt dosyası şu formatta olmalıdır:
[email protected]
[email protected]
[email protected]
[email protected]
Dağıtım Listesi Kısıtlamaları ve Güvenlik Ayarları
Burası işin kritik kısmı. Her liste herkese açık olmamalı. Zimbra’da dağıtım listelerine gönderim kısıtlaması uygulayabilirsiniz.
Sadece İç Kullanıcıların Gönderebileceği Liste
# Sadece yetkili kullanıcıların mail atabileceği liste
zmprov mdl [email protected]
zimbraDistributionListSendShareMessageToNewMembers FALSE
zimbraMailStatus enabled
# Gonderen kisitlamasi ekle
zmprov mdl [email protected]
zimbraDistributionListRestriction policy
zimbraDistributionListSendPolicy allow
Liste Sahibi (Owner) Atama
Bir dağıtım listesini yönetmesi için belirli bir kullanıcıya yetki verebilirsiniz. Bu özellikle departman yöneticileri için kullanışlıdır:
zmprov mdl [email protected] zimbraDistributionListSendShareMessageToNewMembers TRUE
# Owner ekleme
zmprov adlmo [email protected] [email protected]
Owner olan kullanıcı, kendi Zimbra arayüzünden grup üyelerini yönetebilir. Bunu admin müdahalesini azaltmak için muhakkak kullanın.
Sadece Üyelerin Gönderebileceği Liste
Kapalı bir tartışma grubu oluşturmak istiyorsanız, yani sadece listedeki kişilerin birbirine yazabildiği bir yapı:
zmprov mdl [email protected]
zimbraDistributionListRestriction policy
Sonra policy dosyasını düzenlemek gerekir. Zimbra’nın LDAP tabanlı yapısında bu ayar aşağıdaki gibi yapılır:
zmprov mdl [email protected]
zimbraDistributionListSendPolicy membersOnly
İç İçe (Nested) Dağıtım Listeleri
Büyük organizasyonlarda bazen bir listenin içine başka bir liste eklemek gerekir. Örneğin [email protected] listesinin içinde [email protected], [email protected] ve [email protected] listeleri bulunabilir.
# Ana listeyi oluştur
zmprov cdl [email protected] displayName "Tüm Çalışanlar"
# Alt listeleri ana listeye ekle
zmprov adlm [email protected] [email protected]
zmprov adlm [email protected] [email protected]
zmprov adlm [email protected] [email protected]
Bu yapıyı kullandığınızda dikkat etmeniz gereken bir nokta var: döngüsel bağımlılık oluşturmayın. Yani A listesi B’yi, B listesi de A’yı içeriyorsa mail döngüsü oluşur ve sunucunuz eziyet çeker.
Dağıtım Listesi Alias Ekleme
Bir listeye birden fazla e-posta adresi üzerinden ulaşılmasını sağlayabilirsiniz. Örneğin [email protected] listesine hem [email protected] hem de [email protected] üzerinden ulaşılsın istiyorsunuz:
zmprov adla [email protected] [email protected]
zmprov adla [email protected] [email protected]
adla: addDistributionListAlias komutunun kısaltmasıdır.
Alias’ları görüntülemek için:
zmprov gdl [email protected] | grep zimbraMailAlias
Gerçek Dünya Senaryosu: Şirket Yeniden Yapılanması
Diyelim ki şirketinizde iki departman birleşti: Pazarlama ve Satış artık tek bir “Ticari” departman oldu. Eski listeleri silmek yerine yönetmek daha akıllıca:
# Yeni birlesik liste olustur
zmprov cdl [email protected] displayName "Ticari Departman"
# Eski listelerin uyelerini yeni listeye tasimak icin script
#!/bin/bash
for kullanici in $(su - zimbra -c "zmprov gdlm [email protected]"); do
su - zimbra -c "zmprov adlm [email protected] $kullanici"
done
for kullanici in $(su - zimbra -c "zmprov gdlm [email protected]"); do
su - zimbra -c "zmprov adlm [email protected] $kullanici"
done
echo "Tasima tamamlandi."
Eski listeleri hemen silmek yerine birkaç hafta alias olarak tutun:
# Eski adresleri yeni listeye yonlendir
zmprov adla [email protected] [email protected]
zmprov adla [email protected] [email protected]
Bu sayede eski adrese gelen mailler de yeni listeye düşer ve geçiş süreci sorunsuz geçer.
Dağıtım Listesi Silme ve Temizlik
Artık kullanılmayan listeleri temizlemek sistem sağlığı açısından önemlidir. Silmeden önce listeyi devre dışı bırakmak iyi bir pratiktir:
# Once devre disi birak
zmprov mdl [email protected] zimbraMailStatus disabled
# Bir sure bekledikten sonra sil
zmprov ddl [email protected]
ddl: deleteDistributionList komutunun kısaltmasıdır.
Tüm devre dışı listeleri bulmak için:
su - zimbra -c "zmprov gadl | xargs -I{} zmprov gdl {} | grep -B5 'zimbraMailStatus: disabled'"
Zimbra’da Dinamik Dağıtım Grubu (Dynamic Distribution Groups)
Zimbra 8.x ve üzeri sürümlerde dinamik gruplar desteklenir. Bu gruplarda üyeler elle eklenmez; LDAP sorgusu üzerinden otomatik olarak belirlenir. Örneğin “İstanbul ofisindeki tüm çalışanlar” gibi bir kriter belirleyebilirsiniz.
zmprov cddl [email protected]
displayName "İstanbul Çalışanları"
zimbraIsACLGroup TRUE
memberURL "ldap:///??sub?(l=Istanbul)"
Bu yapıda l (locality) alanı Istanbul olan tüm kullanıcılar otomatik olarak gruba dahil edilir. Kullanıcının konumunu güncellediğinizde grup üyeliği de otomatik değişir.
Dağıtım Listesi Raporlama ve İzleme
Hangi listede kaç üye var, hangi listeler aktif, bunları düzenli takip etmek gerekir. Şu script bunu güzel bir şekilde özetler:
#!/bin/bash
# dl_rapor.sh - Dağıtım listesi raporu
echo "===== Zimbra Dağıtım Listesi Raporu ======"
echo "Tarih: $(date)"
echo ""
su - zimbra -c "zmprov gadl" | while read liste; do
uye_sayisi=$(su - zimbra -c "zmprov gdlm $liste" | wc -l)
durum=$(su - zimbra -c "zmprov gdl $liste" | grep zimbraMailStatus | awk '{print $2}')
echo "Liste: $liste | Durum: $durum | Uye Sayisi: $uye_sayisi"
done
Bu scripti crontab’a ekleyerek haftalık rapor alabilirsiniz:
# Her Pazartesi sabah 8'de rapor al ve dosyaya kaydet
0 8 * * 1 /opt/scripts/dl_rapor.sh >> /var/log/zimbra_dl_rapor.log 2>&1
Yaygın Sorunlar ve Çözümleri
Liste adresine mail gidip üyelere ulaşmıyor: Öncelikle liste durumunu kontrol edin:
su - zimbra -c "zmprov gdl [email protected] | grep zimbraMailStatus"
Eğer disabled görünüyorsa enable edin:
su - zimbra -c "zmprov mdl [email protected] zimbraMailStatus enabled"
Dış kaynaklı maillerin listeye ulaşmaması: Postfix relay ayarlarını ve Zimbra’nın dış gönderim politikasını kontrol edin. Bazı listeler yalnızca iç maillere izin verecek şekilde yapılandırılmış olabilir. Bu durumda:
su - zimbra -c "zmprov gdl [email protected] | grep -i restrict"
Üye ekleniyor ama mail almıyor: Kullanıcının kendi hesabının aktif olduğunu doğrulayın:
su - zimbra -c "zmprov ga [email protected] | grep zimbraAccountStatus"
Liste çok fazla üye içeriyor ve mail teslimi yavaş: Zimbra varsayılan olarak büyük listelerde mailleri toplu işler. zimbraDistributionListMaxMembersToExpand parametresini kontrol edin:
su - zimbra -c "zmprov gcf zimbraDistributionListMaxMembersToExpand"
Güvenlik İpuçları
Dağıtım listelerini yönetirken şu güvenlik pratiplerine dikkat edin:
- Açık listeler için SPF ve DKIM kontrolü: Dış kaynaklı gönderim kabul eden listelerde spam riski artar. Postfix’te bu listeler için ekstra filtre kuralı tanımlayın
- Owner yetkisini sınırlı tutun: Her departman yöneticisine kendi listesinin owner’lığını verin ama global yetki vermeyin
- Düzenli üye denetimi: İşten ayrılan çalışanlar hesapları kapatılsa da bazen liste üyelikleri kalır. Hesabı kapatırken liste üyeliklerini de temizleyin
- Log takibi:
/opt/zimbra/log/mailbox.logdosyasında dağıtım listesi ile ilgili olayları takip edin
İşten ayrılan kullanıcıyı tüm listelerden çıkarmak için:
#!/bin/bash
# remove_from_all_lists.sh
KULLANICI=$1
su - zimbra -c "zmprov gadl" | while read liste; do
uyeler=$(su - zimbra -c "zmprov gdlm $liste")
if echo "$uyeler" | grep -q "$KULLANICI"; then
echo "$KULLANICI, $liste listesinden cikariliyor..."
su - zimbra -c "zmprov rdlm $liste $KULLANICI"
fi
done
echo "İşlem tamamlandı."
Sonuç
Zimbra’da dağıtım listesi yönetimi, ilk bakışta basit görünse de kurumun büyüklüğüne ve ihtiyaçlarına göre oldukça karmaşık bir hal alabilir. zmprov aracını iyi öğrenmek, bu işlerin çoğunu birkaç satır scriptile otomatize etmenizi sağlar.
En kritik nokta şu: liste oluştururken güvenlik politikasını baştan düşünün. Kim gönderebilir, kim alır, kim yönetir sorularını en başta yanıtlarsanız sonradan temizlik yapmak zorunda kalmazsınız. Owner mekanizmasını kullanarak yönetim yükünü departmanlara dağıtmak da hem sizin işinizi kolaylaştırır hem de kullanıcıların IT’ye bağımlılığını azaltır.
Dinamik gruplar ise özellikle LDAP bilgisi düzenli tutulan organizasyonlarda büyük zaman tasarrufu sağlar. Kullanıcının departmanı veya lokasyonu değiştiğinde grup üyeliği otomatik güncelleneceğinden manuel takip yükü ortadan kalkar.
Son olarak raporlama scriptini ihmal etmeyin. Hangi listelerin aktif, hangi listelerin atıl durumda olduğunu düzenli görmek, sunucu kaynaklarını verimli kullanmanız açısından kritik bir girdi sağlar.
