Outlook ile Exchange Server Bağlantısı Kurma

Yıllar önce bir müşterimizin ofisinde saatler harcadım. Exchange Server kuruluydu, çalışıyordu, ama hiç kimsenin Outlook’u sunucuya bağlanamıyordu. BT departmanından biri “DNS’i hallettik, artık çalışır” dedi ve gitti. DNS hallolmuştu ama Autodiscover yoktu, SCP kaydı eksikti, sertifika CN’i yanlıştı. O gün Exchange ile Outlook arasındaki bağlantının ne kadar çok katmandan oluştuğunu bir kez daha öğrendim. Bu yazıda o katmanların hepsini tek tek ele alacağız.

Temel Kavramlar: Outlook Exchange’i Nasıl Bulur?

Outlook, Exchange Server’a bağlanmak için birkaç farklı mekanizma kullanır. Hangisinin devreye gireceği ortamınıza, Outlook sürümünüze ve Exchange versiyonunuza göre değişir.

Autodiscover bu sürecin bel kemiğidir. Outlook, kullanıcının e-posta adresi üzerinden Exchange ayarlarını otomatik olarak alır. Bunu şöyle düşünebilirsiniz: Kullanıcı [email protected] adresini giriyor, Outlook bu adresi görünce “sirket.com için Autodiscover servisini nasıl bulurum?” diye sorgulamaya başlıyor.

Autodiscover keşif sırası kabaca şöyle işler:

  • SCP (Service Connection Point) sorgusu, domain joined makinelerde Active Directory’den
  • https://sirket.com/autodiscover/autodiscover.xml adresine HTTPS isteği
  • https://autodiscover.sirket.com/autodiscover/autodiscover.xml adresine HTTPS isteği
  • DNS SRV kaydı _autodiscover._tcp.sirket.com sorgusu
  • Son çare olarak redirect denemeleri

Exchange 2019 ve Modern Authentication kullanılan ortamlarda Autodiscover V2 devreye girer. Bu protokol JSON tabanlıdır ve https://autodiscover.sirket.com/autodiscover/autodiscover.json endpoint’ini kullanır.

Exchange Tarafında Yapılması Gerekenler

Autodiscover Servisini Kontrol Etmek

Exchange Management Shell üzerinden Autodiscover’ın doğru yapılandırılıp yapılandırılmadığını kontrol edebilirsiniz:

Get-AutodiscoverVirtualDirectory -Server EXCH01 | Format-List Server,InternalUrl,ExternalUrl,InternalAuthenticationMethods,ExternalAuthenticationMethods

Burada InternalUrl ve ExternalUrl değerlerinin doğru set edilmesi kritik. İç ağda sertifikanızın CN veya SAN alanında olan bir URL kullanmalısınız.

Set-AutodiscoverVirtualDirectory -Identity "EXCH01Autodiscover (Default Web Site)" `
  -InternalUrl "https://mail.sirket.com/autodiscover/autodiscover.xml" `
  -ExternalUrl "https://mail.sirket.com/autodiscover/autodiscover.xml"

Virtual Directory Ayarları

Autodiscover dışında EWS (Exchange Web Services), OWA ve diğer virtual directory’lerin URL’leri de tutarlı olmalı. Hepsi aynı hostname’i göstermelidir:

# EWS
Set-WebServicesVirtualDirectory -Identity "EXCH01EWS (Default Web Site)" `
  -InternalUrl "https://mail.sirket.com/EWS/Exchange.asmx" `
  -ExternalUrl "https://mail.sirket.com/EWS/Exchange.asmx"

# OAB (Offline Address Book)
Set-OabVirtualDirectory -Identity "EXCH01OAB (Default Web Site)" `
  -InternalUrl "https://mail.sirket.com/OAB" `
  -ExternalUrl "https://mail.sirket.com/OAB"

# MAPI over HTTP
Set-MapiVirtualDirectory -Identity "EXCH01mapi (Default Web Site)" `
  -InternalUrl "https://mail.sirket.com/mapi" `
  -ExternalUrl "https://mail.sirket.com/mapi"

Tüm bu ayarları yaptıktan sonra IIS’i yeniden başlatmak iyi bir pratiktir:

iisreset /noforce

Sertifika Ayarları

Bu noktada sertifika meselesi çok kritik. Exchange Server’da yüklü olan SSL sertifikasının CN veya SAN alanlarında şu hostname’ler bulunmalı:

  • mail.sirket.com (veya kullandığınız CAS URL)
  • autodiscover.sirket.com
  • Exchange sunucusunun NetBIOS adı (iç ağ bağlantıları için)
  • sirket.com (bazı durumlarda gerekli)

Mevcut sertifikanızı Exchange üzerinde kontrol etmek için:

Get-ExchangeCertificate | Format-List FriendlyName,Subject,CertificateDomains,Services,NotAfter,Thumbprint

Sertifikanızın Exchange servislerine atanıp atanmadığını da doğrulayın. Services alanında IIS ve SMTP görmek istersiniz. Eğer yoksa:

Enable-ExchangeCertificate -Thumbprint "SERTIFIKA_THUMBPRINT_BURAYA" -Services "IIS,SMTP"

DNS Yapılandırması

İç ağdaki DNS sunucunuzda ve varsa dış DNS’inizde şu kayıtların olması gerekiyor:

İç DNS için:

  • mail.sirket.com A kaydı, Exchange sunucusunun IP adresine işaret etmeli
  • autodiscover.sirket.com A kaydı veya CNAME olarak mail.sirket.com‘a yönlendirme

Dış DNS için (internet üzerinden erişim gerekiyorsa):

  • mail.sirket.com A kaydı
  • autodiscover.sirket.com A kaydı veya CNAME
  • Opsiyonel olarak SRV kaydı: _autodiscover._tcp.sirket.com 0 0 443 mail.sirket.com

İç DNS testini şöyle yapabilirsiniz:

nslookup autodiscover.sirket.com
nslookup mail.sirket.com

# SRV kaydı testi
nslookup -type=SRV _autodiscover._tcp.sirket.com

Outlook Tarafında Profil Oluşturma

Manuel Profil Oluşturma

Kullanıcı tarafında Outlook profili oluşturmak için Control Panel üzerinden Mail (Microsoft Outlook) bölümüne gidebilir ya da direkt şu komutu kullanabilirsiniz:

outlook.exe /manageprofiles

Bu komutu çalıştırmak profil yönetim ekranını açar. Yeni profil oluştururken Exchange hesabı eklerken Outlook, arka planda Autodiscover sorgusunu tetikler. Bu sorgu başarısız olursa manuel yapılandırma seçeneği gündeme gelir.

Komut Satırından Profil Silme ve Yeniden Oluşturma

Sorunlu bir profili temizleyip yeniden başlamak istediğinizde şu adımları izleyebilirsiniz:

# Outlook'u kapat, çalışan bir instance varsa sonlandır
taskkill /f /im outlook.exe

# Outlook profil dosyasını sıfırla (registry'den)
# HKEY_CURRENT_USERSoftwareMicrosoftOffice16.0OutlookProfiles
reg delete "HKCUSoftwareMicrosoftOffice16.0OutlookProfiles" /f

# Outlook'u yeniden aç, profil sihirbazı devreye girer
outlook.exe

Not: Registry yolundaki 16.0 Outlook 2016/2019/2021/365 için geçerlidir. Outlook 2013 için 15.0, 2010 için 14.0 kullanın.

GPO ile Toplu Profil Konfigürasyonu

Büyük ortamlarda her kullanıcı için tek tek profil oluşturmak tabii ki sürdürülebilir değil. Group Policy ile Outlook profillerini otomatize edebilirsiniz. Bunun için Microsoft’un Office Administrative Templates (ADMX) dosyalarını Group Policy’e yüklemeniz gerekiyor.

Office ADMX şablonlarını indirdikten sonra Policy yapılandırması:

User Configuration > Policies > Administrative Templates > 
Microsoft Outlook 2016 > Account Settings > Exchange > 
Automatically configure profile based on Active Directory Primary SMTP address

Bu politikayı etkinleştirdiğinizde Outlook, kullanıcının AD hesabındaki proxy address bilgisini kullanarak profil oluşturmaya çalışır.

Autodiscover Test ve Sorun Giderme

Test-OutlookWebServices Komutu

Exchange Management Shell’den Autodiscover’ın çalışıp çalışmadığını test etmek için:

Test-OutlookWebServices -Identity [email protected] -MailboxCredential (Get-Credential) | Format-List Type,ID,Message

Bu komut Autodiscover, EWS, OAB ve diğer servisleri test eder ve hangi adımda sorun olduğunu açıkça söyler.

Outlook’ta Ctrl+Sağ Tık ile Bağlantı Durumu

Outlook çalışırken system tray’deki Outlook ikonuna Ctrl basılı tutarak sağ tıklarsanız gizli bir menü çıkar. Buradan “Test E-posta Otomatik Yapılandırması” ve “Bağlantı Durumu” seçeneklerine ulaşabilirsiniz.

“Test E-posta Otomatik Yapılandırması” ekranında kullanıcı@sirket.com adresini girip test çalıştırırsanız hangi URL’lerin kullanıldığını, hangi kimlik doğrulama metodunun tercih edildiğini görebilirsiniz. Sorun tespitinde son derece değerli bir araçtır.

ExRCA (Exchange Remote Connectivity Analyzer)

Microsoft’un çevrimiçi aracı ExRCA (testconnectivity.microsoft.com), harici Autodiscover ve OWA bağlantılarını test etmenizi sağlar. Exchange sunucunuz internete açıksa bu araçla harici taraftaki sorunları hızla bulabilirsiniz.

İç ağ testi için ise Exchange sunucusu üzerinde şu PowerShell bloğunu çalıştırabilirsiniz:

$credential = Get-Credential
Test-AutodiscoverConnectivity -MailboxCredential $credential -ClientAccessServer EXCH01

Yaygın Sorunlar ve Çözümleri

“The name on the security certificate is invalid or does not match”

Bu hata genellikle Outlook, Autodiscover için bir URL’e bağlandığında sertifikada o hostname’i bulamadığında çıkar. Örneğin Exchange sunucunuzun NetBIOS adı EXCH01 ve sertifikanızda bu isim yoksa iç ağdan bağlanan Outlook’lar bu hatayı verir.

Çözüm ya sertifikanıza eksik hostname’leri eklemek ya da Outlook’un o hostname’e gitmesini engellemek. İkinci yol için:

# Exchange'in SCP'sini düzelt, iç URL'yi sertifikada olan hostname'e çek
Set-AutodiscoverVirtualDirectory -Identity "EXCH01Autodiscover (Default Web Site)" `
  -InternalUrl "https://mail.sirket.com/autodiscover/autodiscover.xml"

MAPI over HTTP vs RPC over HTTP

Exchange 2013 SP1 ve sonrasında MAPI over HTTP varsayılan protokol haline geldi. Eski ortamlarda zaman zaman RPC over HTTP (Outlook Anywhere) ile çakışma sorunları yaşanabiliyor.

MAPI over HTTP’nin etkin olup olmadığını kontrol etmek için:

Get-OrganizationConfig | Select MapiHttpEnabled

Eğer False dönüyorsa ve sorun yaşıyorsanız etkinleştirin:

Set-OrganizationConfig -MapiHttpEnabled $true

Sertifika Uyarısını Atlatmak (Geçici Çözüm, Üretim İçin Değil)

Test ortamlarında self-signed sertifika kullanıyorsanız ve sürekli uyarı almak istemiyorsanız, sertifikayı Trusted Root Certification Authorities store’una ekleyebilirsiniz:

# Sertifikayı CER formatında export et
$cert = Get-ExchangeCertificate -Thumbprint "THUMBPRINT_BURAYA"
$cert.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Cert) | 
  Set-Content -Path "C:tempexchange_cert.cer" -Encoding Byte

# GPO ile dağıtmak için ya da elle import için
Import-Certificate -FilePath "C:tempexchange_cert.cer" `
  -CertStoreLocation "Cert:LocalMachineRoot"

Ama tekrar söylüyorum: Bu sadece test ortamları için. Üretimde mutlaka güvenilir bir CA’dan alınmış sertifika kullanın.

Autodiscover’ın Yanlış Sunucuya Yönlenmesi

Özellikle migration sonrası veya birden fazla Exchange sunucusu olan ortamlarda Autodiscover bazen eski ya da yanlış sunucuya yönlenebilir. Bir kullanıcının mailbox’ının hangi sunucuda olduğunu öğrenmek için:

Get-Mailbox -Identity [email protected] | Select ServerName,Database

Eğer kullanıcı doğru sunucuya yönlenmiyorsa ve load balancer kullanıyorsanız, session persistence (sticky sessions) yapılandırmasını kontrol etmeniz gerekir.

Modern Authentication ve Hybrid Senaryolar

Exchange Online ile hybrid yapıda çalışıyorsanız veya Modern Authentication (OAuth 2.0) kullanıyorsanız tablo biraz daha karmaşıklaşıyor.

Modern Authentication için Exchange Server’da şu kontrolü yapın:

Get-OrganizationConfig | Select OAuth2ClientProfileEnabled

False dönüyorsa:

Set-OrganizationConfig -OAuth2ClientProfileEnabled $true

Hybrid ortamlarda Autodiscover V2’nin doğru çalışması için HMA (Hybrid Modern Authentication) yapılandırması da gerekebilir. Bu konu başlı başına ayrı bir yazıyı hak ediyor, ama temel olarak Exchange sunucunuzun Azure AD ile güven ilişkisi kurması ve OAuth token validasyonu yapabilmesi gerekiyor.

Hybrid durumunda kullanıcının cloud’a mı yerelde mi olduğunu Autodiscover yönlendirmesi belirler. Exchange on-premises, kullanıcının mailbox’ını Exchange Online’a taşıdıktan sonra Autodiscover isteklerini otomatik olarak Office 365 endpoint’lerine yönlendirmelidir.

Outlook Profili Doğrulama ve Log Analizi

Outlook’un Autodiscover sürecini detaylı takip etmek istiyorsanız, %TEMP% dizininde oluşturulan Autodiscover loglarına bakabilirsiniz. Bu logları aktif etmek için:

# Outlook Autodiscover logging için registry değeri
reg add "HKCUSoftwareMicrosoftOffice16.0OutlookAutoDiscover" `
  /v "EnableLogging" /t REG_DWORD /d 1 /f

Bu ayardan sonra Outlook’u yeniden başlatın. %TEMP%Outlook Logging veya %LOCALAPPDATA%Temp dizininde Autodiscover*.log dosyaları oluşacaktır. Bu dosyalarda hangi URL’lerin denlendiğini, hangi HTTP status code’larının döndüğünü ve tam olarak nerede takıldığını görebilirsiniz.

Sunucu tarafında IIS loglarını da analiz edebilirsiniz. IIS logları varsayılan olarak C:inetpublogsLogFiles altındadır:

# Autodiscover isteklerini filtrele
Select-String -Path "C:inetpublogsLogFilesW3SVC1*.log" `
  -Pattern "autodiscover" | Select-Object -Last 50

Sonuç

Outlook ile Exchange Server arasındaki bağlantı kurulumu, doğru yapıldığında kullanıcının hiçbir şeyden haberi olmadan çalışan bir süreçtir. Yanlış yapıldığında ise saatlerce hatta günlerce süren bir sorun giderme maratonu haline gelebilir.

Özet olarak dikkat etmeniz gereken kritik noktalar şunlar:

  • Autodiscover URL’lerinin sertifika CN/SAN ile birebir örtüşmesi
  • Tüm virtual directory’lerin tutarlı iç ve dış URL’lere sahip olması
  • DNS kayıtlarının hem iç hem dış ağ için doğru yapılandırılması
  • MAPI over HTTP’nin Exchange 2013 SP1 ve sonrası için etkin olması
  • Modern Authentication kullanıyorsanız OAuth yapılandırmasının tamamlanmış olması

Herhangi bir sorunla karşılaştığınızda test sıralamanız şöyle olsun: Önce Exchange Management Shell’den Test-OutlookWebServices, sonra Outlook’ta Ctrl+Sağ Tık menüsündeki otomatik yapılandırma testi, son olarak IIS ve Autodiscover logları. Bu üç katman çoğu sorunun kaynağını gösterir.

Exchange ortamlarında “bir kez kurulur, sonsuza çalışır” diye bir şey yoktur. Sertifika yenileme, IP değişikliği, sunucu migrasyonu gibi durumlarda bu ayarları tekrar gözden geçirmeniz gerekecektir. Bir kontrol listesi tutun ve her değişiklik sonrası Autodiscover testini çalıştırmayı alışkanlık haline getirin.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir