Exchange Server Mesaj Teslim ve Kuyruk Ayarları
Temel Kavramlar
- MessageExpirationTimeout: Gönderilemeyen bir e-posta iletisinin kuyrukta bekleyeceği toplam süredir. Süre dolunca mesaj kuyruktan silinir ve göndericiye NDR (teslim edilemedi bildirimi) gönderilir.
- RetryInterval: Teslim başarısızsa, Exchange’in tekrar denemeye çalışacağı zaman aralığıdır.
Varsayılan Ayarları Görüntüleme
Aşağıdaki komutu Exchange Management Shell’de çalıştırarak mevcut ayarları görebilirsiniz:
Get-TransportService | select Name, MessageExpirationTimeout, RetryInterval
Örnek çıktı:
Name MessageExpirationTimeout RetryInterval
---- ----------------------- -------------
EXCH01 2.00:00:00 00:05:00
EXCH02 2.00:00:00 00:05:00
- 2.00:00:00 = 2 gün
- 00:05:00 = 5 dakika
Ayarları Değiştirme
Bir sunucuda mesajın kuyrukta 1 gün beklemesi ve 10 dakika aralıklarla tekrar denenmesi için örnek komut:
Set-TransportService -Identity EXCH01 -MessageExpirationTimeout 1.00:00:00 -RetryInterval 00:10:00
Birden fazla sunucu için her sunucuya ayrı ayrı uygulayabilirsiniz:
Set-TransportService -Identity EXCH02 -MessageExpirationTimeout 1.00:00:00 -RetryInterval 00:10:00
Exchange Kuyrukları İzleme ve Yönetme Komutları
Tüm Kuyrukları Görüntüleme
Get-Queue
Bu komut, bağlı olduğunuz sunucudaki tüm kuyrukları listeler.
Belirli Bir Sunucudaki Kuyrukları Görüntüleme
Get-Queue -Server EXCH01
Belirtilen sunucudaki kuyrukları listeler.
Tüm Transport Sunucularında Kuyrukları Görüntüleme
Get-TransportService | Get-Queue
Ortamınızdaki tüm transport sunucularının kuyruklarını topluca görüntülemek için kullanılır.
Belirli Parametrelerle Kuyruk Filtreleme
Sadece Teslim Edilemeyen Mesajlar (Status=Retry):
Get-Queue | Where-Object {$_.Status -eq 'Retry'}
Mesaj Sayısı 100’den Fazla Olan Kuyruklar:
Get-Queue | Where-Object {$_.MessageCount -gt 100}
Belirli Bir Domain’e Giden Kuyrukları Görüntüleme
Get-Queue | Where-Object {$_.NextHopDomain -eq 'gmail.com'}
Kuyrukta Bekleyen Mesajları Görüntüleme
Tüm Mesajları Görmek için
Get-Message
Belirli Bir Kuyruktaki Mesajları Görmek için
Get-Message -Queue "EXCH01123"
Belirli Bir Filtreyle (örneğin, gönderen veya alıcıya göre)
Get-Message | Where-Object {$_.FromAddress -like '*ornek.com'}
Kuyruğu Başka Bir Sunucuya Aktarma (Redirect-Message)
Kuyrukta bekleyen mesajları bir başka Exchange sunucusuna aktarmak için kullanılır.
Tüm Mesajları Başka Bir Sunucuya Yönlendirme
Get-Queue -Server EXCH01 | Where-Object {$_.Status -eq 'Retry'} | Redirect-Message -Target EXCH02
Sadece Belirli Bir Kuyruktaki Mesajları Yönlendirme
Redirect-Message -Identity "EXCH01123" -Target EXCH02
- -Identity: Kuyruk kimliği (sunucuadıkuyruknumarası)
- -Target: Mesajların aktarılacağı hedef sunucu
Not: Yönlendirme işlemi, genellikle bir sunucuda problem olduğunda mesaj kaybını engellemek için kullanılır.
Notlar
- Değişiklikler hemen uygulanır.
- MessageExpirationTimeout süresi dolmadan teslim gerçekleşirse mesaj otomatik olarak kuyruktan çıkarılır.
- Ayarlar Exchange 2013, 2016, 2019 için geçerlidir.
- GUI üzerinden bu detaylı ayarlar yönetilemez, sadece PowerShell ile mümkündür.