Exchange 2007’de transport troubleshoot’ta vazgeçilmez bir özellik…

Posted: 08 Şubat 2012 in Exchange, Sistem

Exchange 2003 archivesink adını verdiğimiz bir metod ile transporta girmekte olan mesajları dump (maili source code’u ile diske yazma işlemi) edebiliyorduk. Troubleshoot edilecek mesajın exchange ‘e nasıl ulaştığını ve hangi değişimlere uğradığını görmek adına çok önemli bir özellik olan ArchiveSink artık exchange 2007’de yok. Bunun yerine yeni bir özellik olan “pipeline tracing” özelliği geldi. Bu özellik sayesinde mesaj transport içerisinde her seviyede dump ettirilebiliyor. Doğal olarak Edge ve HUB transport server’larda bu özelliği çalıştırabiliyoruz. Eğer bir server’da diğer rollerde varsa özellik yine çalışabilir.

Dump ettirmek kısacası ne demek… Mesajın yapısal durumunu analiz etmek için mesajı bir EML oalrak görmeliyiz. RFC standartlar çerçevesinde bu mesaj oluşturulmuşmu oluşturulmamışmı bu durumu ancak EML içerisinden anlarız. EML yapısını ilerde başka bir blog ile anlatmaya çalışacağım.

Pipeline Tracing GUI’den enable edilemiyor enable etmek için powershell kullanmak esasen zorunlu. Bunu aşağıdaki komut ile yapabiliyoruz…

Set-TransportServer KHUB -PipelineTracingEnabled $True

Yukarıdaki satırda $True yerine genel powershell kuralları çerçevesinde “1” $false için “0” da kullanılabilir…

Yukarıdaki işlem yapıldığında HUB server olan KHUB ‘da pipeline tracing tüm mail akışı için enable edilmiş olacaktır.. Tabi giden gelen tüm maillerin dump ettirilmesi performansı çok fazlaca düşüreceği ve disk’i muhtemelen kısa sürede dolduracağı için filtrelemeye ve belirli bir sender’ı izlemeye ihtiyacımız var. Bunuda yapabilmek için aşağıdaki gibi bir ek parametre kullanmalıyız.

-PipelineTracingSenderAddress “omer.mert@contoso.com

Uygun durumdaki bir diski veya disk path’ini kullanmak için aşağdıaki parametrede eklenebilir…

-PipelineTracingPath “C:\PipeLogs

Sonuçta sağlıklı bir pipeline tracing için enazından aşağıdaki komut bütün halinde elimizde bulunmalı…

Set-TransportServer KHUB -PipelineTracingEnabled $True -PipelineTracingSenderAddress “omer.mert@contoso.com” -PipelineTracingPath “C:\PipeLogs

Sağlıklı bir trace için öncelikle Sender address ve trace path girilmeli  ve sonrada enable edilerek veri toplanmalıdır.

Her koşulda gerekli data toplandıktan sonra pipeline tracing muttlaka kapatılmalı…

Set-TransportServer KHUB -PipelineTracingEnabled $False

Pipeline tacing ile çözülmüş bir örnek case…

Müşterimiz exchange 2007’ye gönderilmekte olan bazı maillerde SUBJECT alanının boş olarak (kaybedilmiş olarak) son kullanıcıya ulaştığını iletti. Pipeline tracing ile veri topladık ve elimize geçen EML file’dan aşağıdaki mesaj source’una ulaştık. 

X-CreatedBy: MessageSnapshot-Begin injected headers
X-MessageSnapshot-UTC-Time: 2005-06-12T13:07:04.389Z
X-MessageSnapshot-Protocol-Id: 08CA9AA12568B156;2005-06-12T13:07:00.529Z;5
X-MessageSnapshot-Source: Original
X-Sender: info@chxxx.com.tr
X-Receiver: a.do@bpoxxx.com.tr
X-EndOfInjectedXHeaders: MessageSnapshot-End injected headers
Received: from csm.chxxx.com.tr (172.1.43.13) by
 bpyyyx.inhha.bpoxxx.com.tr (10.1.43.15) with Microsoft SMTP Server id
 8.1.278.0; Thu, 12 Jun 2008 16:07:04 +0300
Received: from www.chxxx.com.tr ([10.1.27.7]) by csm.chxxx.com.tr with
 Microsoft SMTPSVC(6.0.3790.1830);  Thu, 12 Jun 2008 16:02:13 +0300
Content-Type: text/html; charset=”‘ISO-8859-9′”
From: <info@chxxx.com.tr>
To: a.do@bpoxxx.com.tr
Subject: Doğrudan doğruya açılış çoşkusu
Return-Path: info@cbank.com.tr
Message-ID: <ChxxxshufvDV2eq0sbw000000be@csm.chxxx.com.tr>
X-OriginalArrivalTime: 12 Jun 2008 13:02:13.0718 (UTC) FILETIME=[88790760:01C8CC8C]
Date: Thu, 12 Jun 2008 16:02:13 +0300
MIME-Version: 1.0
X-MS-Exchange-Organization-OriginalArrivalTime: 12 Jun 2008 13:07:04.3890
 (UTC)
X-MS-Exchange-Organization-AuthSource: bpoxxxx.intra.bpoxxx.com.tr
X-MS-Exchange-Organization-AuthAs: Anonymous

<HTML><head><META HTTP-EQUIV=3D”Content-Type” CONTENT=3D”text/html; charset=
=3Dwindows-1254″><META HTTP-EQUIV=3D”Content-Type………………………………

Evet yukarıdaki mesaj Original.EML olarak dump edildiği yerden alınıp incelendiğinde şunu görüyoruz…

“Subject:” header’ı Türkçe karakterler içeriyor… Oysa RFC2822 bize aşağıdakileri söylüyor…

2.2. Header Fields

   Header fields are lines composed of a field name, followed by a colon
   (“:”), followed by a field body, and terminated by CRLF. 
A field
   name MUST be composed of printable US-ASCII characters (i.e.,
   characters that have values between 33 and 126, inclusive), except
   colon. 
A field body may be composed of any US-ASCII characters,
   except for CR and LF.  However, a field body may contain CRLF when
   used in header “folding” and  “unfolding” as described in section
   2.2.3.  All field bodies MUST conform to the syntax described in
   sections 3 and 4 of this standard.

 

Bu durumda mailin yapısal sorunu var.. İlgili header doğru biçimde Türkçe karakterler encode edilerek (Base64 yada Quoted Printable) gönderilirse mesajın subject’i doğru biçimde ve doğru karakterler ile belirecektir.

Yukarıdaki örnekteki EML manual encode edilerek submit edildiğinde mesajın subject ile deliver edildiğini görüyoruz.

İlerde birkaç örnek daha eklemeye çalışacağım…

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s