Plesk Mail Kuyruğu Şişmesi Nasıl Düzeltilir?

Plesk paneli kullanılan sunucularda mail kuyruğunun zamanla kontrolsüz şekilde büyümesi, sistem yöneticilerinin en sık müdahale etmek zorunda kaldığı sorunlar arasında yer alır.
Teslim edilemeyen ya da ertelenmiş e-postalar kısa sürede birikerek kuyrukta binlerce mesaja ulaşabilir.
Bu tablo, yalnızca mail servisinin yanıt süresini uzatmakla kalmaz, aynı zamanda sunucunun genel performansını da olumsuz etkiler.

Mail, web ve veritabanı servislerinin aynı fiziksel veya sanal sunucu üzerinde konumlandırıldığı yapılarda bu tür kuyruk problemleri çok daha sık görülür.
Mail Queue şişmesiyle karşılaşıldığında atılması gereken ilk adım, kuyruktaki mesajları kontrollü biçimde temizlerken hangi yöntemin hangi senaryoda tercih edilmesi gerektiğini doğru şekilde bilmektir.

Plesk Paneli Üzerinden Mail Kuyruğu Temizleme

Panel üzerinden yapılan temizleme işlemi, genellikle küçük hacimli mail kuyrukları için uygun bir yöntem olarak değerlendirilir.
Bu işlem sırasında herhangi bir ek komut çalıştırmaya gerek kalmaz ve tüm adımlar doğrudan Plesk arayüzü üzerinden gerçekleştirilir.

Mail Queue Ekranına Ulaşalım

Plesk paneline yönetici yetkileriyle giriş yaptıktan sonra ayarlar bölümüne geçelim. Ayarlar sayfasında mail başlığı altında bulunan Mail Server Settings seçeneğine tıklayalım.

Sayfa açıldıktan sonra üst menüden Mail Queue sekmesine geçelim. Bu ekranda sunucuda gönderilmeyi bekleyen ve ertelenmiş tüm postalar listelenir.

Clear ve Remove Seçenekleri Arasındaki Temel Fark

Mail Queue ekranında bulunan Clear ve Remove seçenekleri ilk bakışta benzer işlevlere sahip gibi görünse de farklı senaryolar için kullanılır.
Clear butonu, mail kuyruğunda bekleyen tüm mesajları tek bir işlemle siler. Kuyruk tamamen kontrolden çıktıysa veya spam gönderimi geniş çapta yayılmışsa bu yöntem tercih edilir.
Remove seçeneği ise yalnızca işaretlenen e-postaları silmeye yarar. Belirli bir gönderen adresine, domaine ya da alıcıya ait mesajları hedeflemek istediğinde Remove kullanmak daha doğru bir yaklaşımdır.
Bu yöntem, gereksiz şekilde tüm kuyruğun silinmesini engeller ve olası kullanıcı hatalarının önüne geçilmesini sağlar.

Kuyruktaki Mesajları Detaylı İnceleyelim

Mail Queue listesinde özellikle Sender ve Status alanlarına dikkat edelim.
Aynı gönderen adresinden yüzlerce ya da binlerce mesajın yer alması, çoğu zaman spam çıkışına işaret eder.

Tüm Mail Kuyruğunu Temizleme

Tüm mail kuyruğunu silmek için Mail Queue ekranının üst bölümünde yer alan Clear butonuna tıklanır.
Bu işlem, kuyrukta bulunan tüm e-postaların kalıcı olarak silinmesini sağlar.

Sadece Seçili Mesajları Silme

Eğer tüm kuyruğun silinmesi istenmiyorsa yalnızca belirli mesajlar temizlenebilir. Bu işlem için listede silinmesi gereken e-postalar checkbox ile işaretlenir. Seçim tamamlandıktan sonra Remove butonuna tıklanır.

SSH Kullanarak Mail Queue Temizleme

SSH üzerinden gerçekleştirilen mail kuyruğu temizleme işlemleri, büyük hacimli kuyruklarda çok daha hızlı ve kontrollü sonuç verir.
Plesk, mail kuyruğunu yönetmek ve temizlemek için kendi CLI araçlarını sunmaktadır.
Bu işlemleri uygulamak için sunucuya root yetkisiyle SSH bağlantısı kuralım.

Tüm Mail Kuyruğunu Temizleme

Kuyrukta yer alan tüm mailleri, gönderilmeyi bekleyen ve çıkış yapan mesajlar dahil olacak şekilde tek seferde silmek için aşağıdaki komutu kullanalım.

postsuper -d ALL

Sadece Deferred Olan Mailleri Silmek

Hata aldığı için yeniden gönderilmeyi bekleyen ve çoğunlukla spam kaynaklı olan mailleri silmek amacıyla aşağıdaki komutu kullanalım.

postsuper -d ALL deferred

Belirli Bir Göndericiden Gelen Mailleri Silmek

Eğer mail kuyruğunu şişiren tek bir e-posta hesabı varsa bu yöntemi uygulayalım.

<code>mailq | tail -n +2 | awk 'BEGIN { RS = "" } /spam@alanadi\.com/ { print $1 }' | tr -d '*!' | postsuper -d -</code>

Mail Kuyruğu Kontrolü

Mail kuyruğunda kaç mesaj olduğunu ve bu mesajların hangi sebeplerle kuyrukta beklediğini anlamak için aşağıdaki komutları kullanabiliriz.

Kuyruktaki mail sayısını görmek için

<code>mailq | grep -c "^[A-F0-9]"</code>

Kuyrukta yer alan maillerin içeriğini kontrol etmek için

<code>postcat -q [MAIL_ID]</code>

Mail Gönderim Kaynağını Tespit Etme

Gönderici bölümünde e-posta adresi yerine sistem kullanıcısı yer alıyorsa, mail gönderimi bir PHP dosyası üzerinden gerçekleşmiş olabilir.
Bu durumda önce mailq çıktısından bir Mail ID seçelim.
Daha sonra aşağıdaki komut ile maili tetikleyen dosya yolunu inceleyelim.

<code>postcat -q A1B2C3D4 | grep "X-PHP-Originating-Script"</code>

Temizlik sonrası kontrol

Temizleme işlemi tamamlandıktan sonra tekrar Plesk paneline dönelim ve Mail Queue sekmesi yenileyelim. Liste boşsa işlem başarıyla tamamlanmıştır.

Gelecekte Kuyruk Şişmesini Nasıl Önlerim?

Mail kuyruğunu temizlemek sorunu geçici olarak çözer. Asıl önemli olan, aynı problemin tekrar yaşanmamasını sağlamaktır. Bunun için Plesk üzerinde birkaç temel ayarın mutlaka yapılması gerekir.

Giden Mail Sınırı Koyulmalı

Plesk panelde Tools & Settings > Outbound Spam Protection kısmından her domain için saatlik limit belirleyelim.

SPF ve DKIM Kayıtlarını Kontrol Edelim

Plesk’te her domain için Mail Settings bölümünden SPF ve DKIM ayarlarının aktif olduğundan emin olunmalıdır. Çünkü SPF ve DKIM kayıtları eksik veya hatalıysa, gönderilen mailler karşı sunucular tarafından reddedilir

Relay Ayarlarını Kapatalım

Plesk panelde ayarlar bölümünden relay ayarları kontrol edilmelidir. Mail sunucusunun Open Relay durumunda olması, en kritik güvenlik risklerinden biridir. Open Relay olan bir sunucu, dışarıdan herkes tarafından mail göndermek için kullanılabilir.

Yorum yapın