Exchange Server Kuyruğundaki Mailleri Başka bir Sunucuya Taşıma – Export messages from queues

Umarım kimsenin bu yazıya ihtiyacı olmaz ancak günün sonunda pek çok farklı nedenden dolayı böyle bir iş ihtiyacı ile karşı karşıya kalabilirsiniz. Genelde exchange server’ da kuyruk sorunları çok bilinen ve görülen sorunlardır. Kuyruğu incelediğiniz zaman eğer kuyruklardan bir tanesinden çok fazla mesaj olduğunu görürseniz ki bu bilgide genelde size mail alamıyorum veya bana mail gelmiyor uyarılarından sonra sizin ilk baktığınız yerin kuyruk olmasından kaynakladır (Yoksa önce başka bir yere mi bakıyorsunuz!).

Tabi ki burada mutlaka hata kodunu görecek ve sorunu çözeceksiniz. Ancak bazen öyle durumlar oluyor ki sorun organizasyon ile ilgili değil de sorun sunucu ile ilgili oluyor, tam bu durumda içinizden “ah birde kuyruktaki 5000 mail’ i yeni kurduğum veya düzgün çalışan sunucuya alsaydım” geçiyor ise çözüm çok kolay.

Öncelikle aşağıdaki PS ile tüm veya yine linkte bulacağınız gibi istediğiniz filtrelere göre mailleri eml formatında export edebilirsiniz.

Get-Message -Queue -ResultSize Unlimited | ForEach-Object {$Temp=+$_.InternetMessageID+”.eml”; $Temp=$Temp.Replace(“<“,”“); $Temp=$Temp.Replace(“>”,”“); Export-Message $_.Identity | AssembleMessage -Path $Temp}

Ancak bu komutu kullanmak için ilk olarak kuyruğu suspent konumuna almanız gerekli, yani bir nevi iletimi durduruyoruz, daha doğrusu zaten iletemiyor ama iletmeyi denemesini durduruyoruz.

Suspend-Queue Mailbox01\contoso.com

Kuyruk ismini get-queue komutu ile çektiğinizde görebilirsiniz.

Bu kuyruk içerisindeki tüm mailleri suspend durumuna getiriyoruz.

Get-Queue Mailbox01\contoso.com | Get-Message -ResultSize Unlimited | Suspend-Message

Son olarak hepsini eml formatında export ediyoruz.

Get-Message -Queue Mailbox01\Contoso.com -ResultSize Unlimited | ForEach-Object {$Temp=”D:\Contoso Export\”+$_.InternetMessageID+”.eml”; $Temp=$Temp.Replace(“<“,”“); $Temp=$Temp.Replace(“>”,”“); Export-Message $_.Identity | AssembleMessage -Path $Temp}

Yine aşağıdaki link yardımı ile sadece belirli mailleri kuyruktan export edebilirsiniz.

https://docs.microsoft.com/en-us/exchange/mail-flow/queues/export-messages?view=exchserver-2019

Peki buraya kadar güzel, mailleri aldık ancak yeni sunucuya nasıl taşıyacağız, dahası nasıl onları yeni sunucu kuyruğuna alacağız?

eml uzantılı dosyaları yeni sunucudaki aşağıdaki dizine (kuruluma göre path değişebilir) kopyalamanız yeterli;

C\Program Files\Microsoft\Exchange Server\TransportRoles\Replay

Daha sonra Microsoft Exchange Transport servisini bir kere yeniden başlatmanız yeterli.

Umarım faydalı bir bilgi olmuştur.