E-posta & SMTP Sunucu

    Otomatik Yanıt (Vacation) Kurulumu

    Sieve vacation ile tatil ve otomatik yanıt kurulumu, döngüye girmeyen güvenli ayarlar.

    9 dk okuma Güncellendi: 25 Ağustos 2026

    Otomatik yanıt kurmak kağıt üzerinde en basit posta özelliğidir: "yıllık izindeyim, 15 Ağustos'ta dönüyorum" yazarsın, sunucu bunu gelen herkese gönderir. Uygulamada ise otomatik yanıt, mail sunucusunun en kolay ters tepen bileşenidir. Yanlış yapılandırılmış bir vacation kuralı, iki sunucu arasında sonsuz yanıt döngüsü başlatabilir, spam gönderenlere "bu adres canlı" sinyali verebilir ve yüz kişilik bir e-posta listesine tatil mesajı yağdırabilir.

    Bu rehberde Dovecot'un sieve vacation eklentisiyle güvenli bir otomatik yanıt kurulumunu anlatacağım: eklentinin nasıl etkinleştirileceği, sieve betiğinin anatomisi, döngüyü engelleyen mekanizmalar, sunucu genelinde uygulanması gereken sınırlar ve kullanıcıların bunu webmail üzerinden kendi başlarına yönetmesi için gereken ManageSieve katmanı. Sonda da tatil yanıtlarının klasik felaket senaryolarını ve bunların nasıl önlendiğini bulacaksın.

    Otomatik Yanıt Nasıl Çalışır ve Neden Risklidir#

    Otomatik yanıt, gelen bir mesaja sunucunun kendi başına cevap üretmesidir. Bu, teknik olarak yeni bir mesaj göndermek demektir ve gönderilen her mesaj gibi teslimat, itibar ve döngü riski taşır. Standart, RFC 5230 ile tanımlanan sieve vacation eylemidir ve içine üç ayrı koruma yerleştirilmiştir.

    Birincisi gönderen hafızası: sunucu, bir adrese yanıt verdiğinde bunu kaydeder ve belirlenen gün sayısı dolmadan aynı adrese ikinci kez yanıt vermez. Aynı kişi izindeyken sana on mesaj atsa bile bir tatil yanıtı alır. İkincisi başlık işaretlemesi: üretilen yanıt Auto-Submitted: auto-replied başlığı taşır, böylece karşı taraftaki otomatik yanıt sistemi buna cevap vermez. Üçüncüsü alıcı eşleşmesi: sieve, mesajın gerçekten sana yazılıp yazılmadığını kontrol eder; adresin To veya Cc alanında geçmiyorsa yanıt üretmez.

    KorumaNasıl çalışırKapatılırsa ne olur
    Gönderen hafızası (:days)Aynı adrese X gün içinde tek yanıtHer mesaja ayrı yanıt, spam algısı
    Auto-Submitted başlığıKarşı taraf otomatik yanıtı cevaplamazİki sunucu arasında sonsuz döngü
    :addresses eşleşmesiYalnızca sana yazılmışsa yanıt verListelere ve BCC'lere yanıt gider
    Liste başlığı kontrolüList-Id varsa yanıt vermeE-posta listesi tatil mesajıyla dolar

    Dördüncü koruma standartta yoktur, kendin eklemen gerekir: e-posta listelerinden gelen mesajları elemek. Sieve betiğinde List-Id veya Precedence: bulk başlıklarını kontrol ederek bunu halledersin.

    Dovecot'ta Sieve ve Vacation Eklentisini Açmak#

    Sieve, Dovecot'un teslimat aşamasında çalışan filtreleme motorudur. LMTP ile teslimat yapıyorsan eklentiyi LMTP protokolü için etkinleştirmen gerekir; klasik LDA kullanıyorsan 15-lda.conf dosyası devreye girer.

    # /etc/dovecot/conf.d/20-lmtp.conf
    protocol lmtp {
      mail_plugins = $mail_plugins sieve
    }
    
    # /etc/dovecot/conf.d/15-lda.conf
    protocol lda {
      mail_plugins = $mail_plugins sieve
    }
    

    Ardından sieve eklentisinin kendi ayarlarını yapılandır. Buradaki sieve_vacation_* parametreleri, kullanıcıların ne yapabileceğinin sunucu tarafındaki sınırlarıdır:

    # /etc/dovecot/conf.d/90-sieve.conf
    plugin {
      sieve = file:~/sieve;active=~/.dovecot.sieve
    
      # Kullanıcıların kullanabileceği eklentiler
      sieve_extensions = +vacation +vacation-seconds +editheader
    
      # Aynı gönderene tekrar yanıt vermeden önce beklenecek süre
      sieve_vacation_default_period = 7d
      sieve_vacation_min_period     = 1d
      sieve_vacation_max_period     = 30d
    
      # Yanıtı, mesajın gerçekte gönderildiği adresten üret
      sieve_vacation_use_original_recipient = yes
      sieve_vacation_send_from_recipient    = yes
    
      # Kullanıcı başına betik boyutu ve sayısı sınırı
      sieve_max_script_size    = 64k
      sieve_quota_max_scripts  = 10
    }
    

    sieve_vacation_min_period değerini bir günün altına indirme. Bu ayar, bir kullanıcının yanlışlıkla ya da bilerek "her mesaja anında cevap ver" kuralı kurmasını engelleyen tek fren. Değişikliklerden sonra Dovecot'u yeniden yükle ve etkin ayarları doğrula:

    systemctl reload dovecot
    doveconf -n plugin | grep sieve_vacation
    

    Sieve Betiğinin Anatomisi#

    Basit bir tatil yanıtı üç satırlık bir betiktir. Ama üretimde kullanacağın betik, yukarıda saydığımız korumaları da içermelidir. Aşağıdaki örnek, hem liste mesajlarını hem de otomatik gönderimleri eleyerek yanıt üretir:

    require ["vacation", "envelope"];
    
    # E-posta listelerine ve otomatik gönderimlere yanıt verme
    if anyof (
         exists "list-id",
         exists "list-unsubscribe",
         header :contains "precedence" ["bulk", "list", "junk"],
         header :contains "auto-submitted" ["auto-generated", "auto-replied"],
         header :matches "from" ["*no-reply@*", "*noreply@*", "*mailer-daemon@*"]
       ) {
      stop;
    }
    
    # Boş zarf gönderenli mesajlar (bounce) yanıtlanmaz
    if envelope :is "from" "" {
      stop;
    }
    
    vacation
      :days 7
      :subject "Otomatik yanıt: yıllık izindeyim"
      :addresses ["[email protected]", "[email protected]"]
      :from "[email protected]"
      "Merhaba,
    
    15 Ağustos'a kadar yıllık iznimdeyim ve e-postalarımı düzenli kontrol edemiyorum.
    Acil konular için [email protected] adresine yazabilirsiniz.
    
    İyi çalışmalar,
    Ali";
    

    Betiğin sırası önemlidir: eleme koşulları vacation eyleminden önce gelmeli ve eşleşen mesajlarda stop ile akış kesilmelidir. stop yazmayı unutursan koşul çalışır ama alt satırdaki vacation da devreye girer.

    :addresses listesine kullanıcının tüm takma adlarını yaz. Sieve, mesajın alıcı alanlarında bu adreslerden en az birini görmezse yanıt üretmez — yani bir listeye BCC ile gelen mesaj otomatik olarak elenir. Bu, tek satırlık ama en etkili korumadır.

    Betiği canlıya almadan önce söz dizimini kontrol et ve gerçek bir mesajla test et:

    # Söz dizimi kontrolü
    sievec /var/mail/vhosts/firmaniz.com/ali/sieve/vacation.sieve
    
    # Betiği gerçek bir mesaj dosyasıyla çalıştırıp ne yapacağını gör
    sieve-test -t - /var/mail/vhosts/firmaniz.com/ali/.dovecot.sieve ornek-mesaj.eml
    

    Kullanıcıların Kendi Başına Yönetmesi: ManageSieve#

    Her tatil talebinde sunucuya SSH ile bağlanmak sürdürülebilir değil. ManageSieve (4190 numaralı port), kullanıcıların kendi sieve betiklerini webmail veya masaüstü istemci üzerinden düzenlemesini sağlayan protokoldür.

    # /etc/dovecot/conf.d/20-managesieve.conf
    service managesieve-login {
      inet_listener sieve {
        port = 4190
      }
    }
    protocols = $protocols sieve
    

    Roundcube tarafında managesieve eklentisini etkinleştirdiğinde kullanıcı, Ayarlar bölümünden "Tatil" sekmesiyle tarih aralığı ve mesaj metnini kendisi girer:

    // Roundcube config/config.inc.php
    $config['plugins'] = ['managesieve', 'password'];
    $config['managesieve_host'] = 'localhost';
    $config['managesieve_port'] = 4190;
    $config['managesieve_vacation'] = 1;
    

    Hangi webmail'in bu işi daha rahat yaptığını webmail seçenekleri karşılaştırması yazısında ayrıntısıyla ele aldım; kısaca Roundcube'un managesieve eklentisi bu konuda en olgun seçenek. Paylaşımlı hosting kullanıyorsan sunucu tarafına hiç dokunmadan panelden otomatik yanıt tanımlayabilirsin; filtre mantığının panel karşılığı için cPanel e-posta filtreleri yazısına bakabilirsin.

    Sunucu Genelinde Sınır Koymak ve İzlemek#

    Kullanıcıların betiklerine güvenmek yerine, sunucu tarafında da bir tavan bırakmakta fayda var. Otomatik yanıtlar Postfix kuyruğundan çıkan normal mesajlardır, dolayısıyla giden posta oranını sınırlayan her mekanizma onları da kapsar. Bir hesabın saatte kaç mesaj gönderebileceğini sınırlarsan, bozuk bir vacation kuralı sunucunun itibarını harcamadan önce frene basmış olursun.

    # /etc/postfix/main.cf
    # Aynı hedefe saniyede birden fazla bağlantı açma
    default_destination_rate_delay = 1s
    # Aynı hedefe eşzamanlı bağlantı tavanı
    default_destination_concurrency_limit = 5
    

    Otomatik yanıtların gerçekten üretilip üretilmediğini görmek için sieve'in kendi günlüğünü aç. Dovecot, her kullanıcının sieve eylemlerini ayrı bir dosyaya yazabilir; bir tatil yanıtının neden çıkmadığını anlamanın en hızlı yolu budur.

    # /etc/dovecot/conf.d/90-sieve.conf
    plugin {
      sieve_user_log = ~/.dovecot.sieve.log
    }
    
    # Son üretilen tatil yanıtlarını logdan izle
    grep -i vacation /var/log/mail.log | tail -20
    
    # Bir kullanıcının sieve eylem günlüğü
    tail -f /var/mail/vhosts/firmaniz.com/ali/.dovecot.sieve.log
    

    Loglarda vacation action satırını görüyorsan kural çalışmıştır; hiç satır yoksa ya betik etkin değildir ya da eleme koşullarından biri mesajı durdurmuştur. Gönderim oranı ve kuyruk davranışını daha ayrıntılı ayarlamak istersen, ilgili parametreleri konu bazında ele aldığım throttling yazısına da göz atabilirsin.

    Sık Yapılan Hatalar ve Tuzaklar#

    E-posta listelerine yanıt vermek. Klasik felaket senaryosu budur: kullanıcı tatil yanıtı açar, abone olduğu bir listeye mesaj gelir, sunucu listeye cevap verir, liste bunu tüm abonelere dağıtır. Betikteki list-id kontrolü ve :addresses kısıtı bunu engeller. Bu iki satırı asla atlama.

    Spam'e yanıt vermek (backscatter). Otomatik yanıt, sahte gönderen adresli spam mesajlarına cevap verdiğinde masum bir üçüncü kişiye posta göndermiş olursun. Bu, sunucunun kara listeye girmesinin sık sebeplerinden biridir. Vacation kuralını mutlaka spam filtresinden sonra çalışacak biçimde konumlandır: sieve betiğinde önce X-Spam-Flag kontrolü yap, işaretli mesajlarda stop ile çık.

    require ["vacation", "fileinto"];
    
    if header :contains "X-Spam-Flag" "YES" {
      fileinto "Junk";
      stop;
    }
    

    Boş zarf göndereni kontrol etmemek. Teslimat hatası bildirimleri (bounce) boş MAIL FROM ile gelir. Bunlara yanıt vermeye çalışmak hem anlamsızdır hem de kuyrukta çöp biriktirir. Yukarıdaki envelope :is "from" "" kontrolü bunu keser.

    Yanıtı yanlış adresten göndermek. Kullanıcının birden çok takma adı varsa ve sieve_vacation_send_from_recipient kapalıysa, yanıt her zaman birincil adresten çıkar. Müşteri [email protected] adresine yazar, cevabı [email protected] adresinden alır ve kafası karışır. Bu ayarı açık tut.

    Yönlendirme ile birlikte kullanmak. Hesabında hem otomatik yanıt hem başka bir adrese yönlendirme varsa, yönlendirilen mesaj hedefte de bir otomatik yanıt tetikleyebilir. Yönlendirmenin kendi başına yarattığı sorunlar için cPanel e-posta iletme yazısındaki uyarıları da oku.

    Kapatmayı unutmak. En yaygın ve en zararsız görünen hata. Dönüş tarihi geçmiş bir tatil yanıtı, kurumsal iletişimde güven kaybettirir. Sieve'in :days parametresi tarih sınırı koymaz; tarih kontrolünü currentdate testiyle betiğe kendin eklemelisin:

    require ["vacation", "date", "relational"];
    
    if allof (
         currentdate :value "ge" "date" "2026-08-01",
         currentdate :value "le" "date" "2026-08-15"
       ) {
      vacation :days 7 :subject "Otomatik yanıt" "Yıllık izindeyim.";
    }
    

    Sıkça Sorulan Sorular#

    Otomatik yanıt aynı kişiye kaç kez gönderilir#

    Sieve vacation eylemi, aynı gönderene :days parametresinde belirtilen süre boyunca yalnızca bir kez yanıt verir. Varsayılan olarak yedi gün kullanmak makul bir tercihtir; bir hafta içinde sana beş mesaj atan kişi tek tatil yanıtı alır. Süreyi çok kısaltmak otomatik yanıtı spam gibi göstereceği için sunucu tarafında sieve_vacation_min_period ile bir alt sınır koymak önemlidir.

    Otomatik yanıt spam klasörüne düşer mi#

    Düzgün yapılandırılmış bir yanıt genellikle düşmez, çünkü Auto-Submitted başlığı taşır ve kendi alan adından SPF ile DKIM imzalı çıkar. Yanıtın spam'e düşmesinin en yaygın sebebi, gönderen adresinin alan adıyla uyumsuz olması ya da sunucunun DKIM imzası atmamasıdır. Yanıtın kendi alan adından çıktığından ve imzalandığından emin ol.

    Otomatik yanıt e-posta listelerine de gider mi#

    Betiğinde liste kontrolü yoksa evet, gider ve bu gerçek bir sorundur. List-Id, List-Unsubscribe başlıklarını ve Precedence: bulk değerini kontrol ederek bu mesajları elemelisin. Ayrıca :addresses parametresiyle yalnızca kendi adresine doğrudan yazılmış mesajlara yanıt vermesini sağlarsan, çoğu liste mesajı zaten otomatik olarak dışarıda kalır.

    Tatil bitince otomatik yanıtı nasıl kapatırım#

    En güvenli yöntem, betiğe tarih aralığı koymaktır; currentdate testiyle sarmalanan bir vacation kuralı belirlediğin tarihten sonra kendiliğinden devre dışı kalır. Elle kapatmak istersen webmail üzerinden tatil ayarını pasife alman ya da sunucuda etkin sieve betiğini değiştirmen yeterlidir. Tarih kontrolü koymayı alışkanlık haline getir; unutulan tatil yanıtları en sık görülen problemdir.

    Sunucuya erişimim yok, otomatik yanıtı nasıl kurarım#

    Paylaşımlı hosting kullanıyorsan panel üzerinden otomatik yanıtlayıcı tanımlayabilirsin; cPanel'de bu bölüm doğrudan "Otomatik Yanıtlayıcılar" başlığı altındadır ve arka planda benzer bir mekanizma çalışır. Webmail'in filtre veya tatil sekmesi de aynı işi görür; sunucuda ManageSieve etkinse Roundcube'un tatil sekmesi doğrudan sieve betiği yazar. Her iki yolda da liste ve spam kontrolü panelin varsayılanlarına bırakılır.

    Otomatik yanıt yerine ne kullanmalıyım#

    Uzun süreli devir teslimlerde otomatik yanıt yerine mesajı doğrudan devralan kişiye yönlendirmek daha temizdir; bu durumda gönderen ikinci bir mesaj yazmak zorunda kalmaz. Ekip adresleri için ise en iyi çözüm ortak bir kutu ya da destek sistemidir: mesaj tek bir yere düşer, kim izinde olursa olsun akış durmaz. Otomatik yanıtı yalnızca kişisel adresler ve kısa süreli yokluklar için kullan.

    Kapanış#

    Otomatik yanıt, doğru kurulduğunda görünmez çalışan, yanlış kurulduğunda ise sunucunun itibarını harcayan bir özelliktir. Aklında tutman gereken dört alışkanlık şu: liste ve otomatik gönderim başlıklarını mutlaka ele, spam kontrolünü vacation kuralından önce çalıştır, :addresses ile yalnızca sana doğrudan yazılmış mesajlara cevap ver ve betiğe tarih aralığı koyarak yanıtın kendiliğinden kapanmasını sağla. Sunucu tarafında da sieve_vacation_min_period ile bir alt sınır bırak.

    Sieve ve ManageSieve katmanını kendin kurmak yerine hazır çalışan bir yapıyla başlamak istersen kurumsal e-posta çözümlerimizde otomatik yanıt, filtre ve webmail arayüzü kurulu gelir. Kendi mail sunucunu işletmek istiyorsan SMTP sunucu paketlerimizde Postfix, Dovecot ve sieve önceden yapılandırılmış olarak teslim edilir; yapılandırmanın bakımını devretmek istediğinde sunucu yönetimi hizmetimiz bu katmanı da kapsar.

    DovecotSieveMail Sunucusu

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.