IIS SMTP Relay ile Azure Communication Services Entegrasyonu
Günümüzde birçok kurum, yıllar içerisinde gelişen uygulama ekosistemleri nedeniyle hala legacy (eski) sistemler üzerinden mail gönderimi gerçekleştirmektedir. Özellikle web formları, ERP uygulamaları veya özel yazılımlar, SMTP üzerinden doğrudan mail sunucularına bağlanarak iletişim kuracak şekilde tasarlanmıştır. Ancak bu yaklaşım, modern güvenlik standartları ve bulut tabanlı mimariler karşısında ciddi riskler barındırmaktadır.
Geleneksel yöntemlerde sıkça karşılaşılan SMTP kullanıcı adı ve şifre paylaşımı, hem kimlik bilgilerinin güvenliği hem de kurum mail altyapısının korunması açısından kritik zafiyetler oluşturabilir. Bunun yanı sıra, doğrudan dış sistemlere açılan SMTP portları ve kontrolsüz erişimler, spam gönderimi, spoofing ve itibar kaybı gibi operasyonel sorunlara yol açabilmektedir.
Bu noktada kurumlar, mevcut sistemlerini tamamen değiştirmek yerine, kademeli ve kontrollü bir geçiş yaklaşımı benimsemektedir. Legacy sistemlerin ihtiyaçlarını karşılamaya devam ederken, aynı zamanda daha güvenli ve sürdürülebilir bir mail gönderim altyapısı oluşturmak mümkündür.
Bu makalede, on-prem ortamlarda kullanılan SMTP tabanlı mail gönderim yöntemlerinin risklerini ele alacak; buna karşılık daha güvenli alternatifler olan SMTP relay mimarileri, ara katman (relay) sunucular ve Azure Communication Services gibi modern API tabanlı çözümler ile nasıl hibrit bir yapı kurulabileceğini detaylı şekilde inceleyeceğiz.
Azure Communication Services tarafından sunulan başlıca hizmetler
İletişim Servisleri
- Email (Mail Gönderimi)
- SMTP veya API üzerinden mail gönderimi
- Domain doğrulama (SPF, DKIM)
- Yüksek teslimat oranı (deliverability)
- SMS (Text Message)
- Global SMS gönderimi
- Tek yönlü ve çift yönlü mesajlaşma
- Voice (Sesli Arama)
- PSTN arama (telefon numarası üzerinden arama)
- IVR (Interactive Voice Response) senaryoları
- Video & Audio Calling
- Web ve mobil uygulamalarda sesli/görüntülü görüşme
- 1:1 veya grup görüşmeleri
Mesajlaşma & Gerçek Zamanlı İletişim
- Chat (Gerçek zamanlı mesajlaşma)
- Uygulama içi chat altyapısı
- Kullanıcılar arası anlık mesajlaşma
- Event Notifications
- Mail, SMS gibi işlemler için event-based bildirimler
- Delivery, bounce, failure takibi
Kimlik & Güvenlik
- Identity Management
- ACS token tabanlı kimlik doğrulama
- Kullanıcı bazlı erişim kontrolü
- Access Control (API Key / Connection String)
- Güvenli erişim için anahtar bazlı authentication
İzleme & Yönetim
- Delivery Reports
- Mail/SMS teslim durumları
- Başarılı / başarısız gönderim takibi
- Logging & Diagnostics
- Azure Monitor ile entegre loglama
- Hata ve performans analizi
Entegrasyon & Genişletilebilirlik
- REST API & SDK Desteği
- .NET, Java, Python, JavaScript SDK’ları
- Kolay uygulama entegrasyonu
- SMTP Desteği (Email için)
- Legacy sistemler için SMTP uyumluluğu
Bu makaleleyi hazırlarken bir kaç örnek senaryoda paylaşmak istiyorum
1 – Senaryolar
Ortamınızda legacy sistemler olabilir printer, yazıcı vb. ancak siz modern ve daha güvenli bir yapıya geçmek istiyorsanız ACS size göre.
2 – Dışarda uygulamalarınız olabilir ve eposta gönderme ihtiyacı doğabilir. Bu gibi durumlarda external relay ve smtp server gibi yöntemler yerine bu işi tamamen ACS e devrede bilirsiniz.
Azure Communication Services Dağıtımı
İlk olarak Azure portalda Azure Communication Services arayarak buluyoruz. Ekranda görüldüğü üzere, öncelikle resource’un hangi subscription ve resource group altında oluşturulacağı belirlenmektedir. Bu seçimler, hem maliyet yönetimi hem de kaynakların düzenli bir şekilde gruplanması açısından önemlidir. Ardından resource’a anlamlı bir isim verilmekte (örneğin A3-ACS) ve servis lokasyonu (region) seçilmektedir. Burada genellikle uygulamaya en yakın veya regülasyonlara uygun bölgenin seçilmesi önerilir.


Email Domain Bağlantısı
Bu adımda, Azure Communication Services üzerinde mail gönderimi yapabilmek için kullanılacak domain’in sisteme tanımlanması ve doğrulanmış bir domain ile ilişkilendirilmesi gerçekleştirilmektedir.
Ekranda görüldüğü üzere, ACS servisine doğrudan bir domain eklenememekte; öncelikle Azure tarafında bir Email Service oluşturulması ve bu servis altında domain doğrulama işlemlerinin tamamlanmış olması gerekmektedir. Yalnızca doğrulanmış (verified) domain’ler bu aşamada seçilebilir. Bu doğrulama süreci genellikle DNS kayıtları (SPF, DKIM vb.) üzerinden yapılır.





Bu adımda, Azure Communication Services üzerinde mail gönderiminde kullanılacak özel domain (custom domain) tanımlanmakta ve doğrulama süreci başlatılmaktadır. Görselde görüldüğü gibi domain adı girilerek sisteme eklenmekte ve ardından doğrulama adımlarına geçilmektedir.
Domain eklendikten sonra Azure, domain sahipliğinin doğrulanabilmesi için gerekli DNS kayıtlarını (özellikle TXT record) sunmaktadır. Bu kayıtların domain’in DNS yönetim paneline eklenmesi ile birlikte, sistem domain’in gerçekten size ait olduğunu doğrular. Doğrulama tamamlandıktan sonra domain “verified” durumuna geçer.





Bu adımda, Azure Communication Services ile güvenli iletişim kurabilmek için Azure Entra ID (Azure AD) üzerinde bir uygulama (App Registration) oluşturulmaktadır. Bu uygulama, ACS servisine erişecek olan sistemin kimliğini temsil eder.
Görsellerde görüldüğü üzere, öncelikle bir uygulama kaydı oluşturulmakta (örneğin A3-ACS-SMTPAPP1) ve ardından bu uygulama için bir client secret üretilmektedir. Bu secret, uygulamanın kimlik doğrulama sırasında kullanacağı “şifre” niteliğindedir ve API erişimi için gereklidir.






Bu adımda, Azure Communication Services üzerinde oluşturulan uygulamanın (App Registration) ilgili servise erişebilmesi için yetkilendirme işlemi yapılmaktadır.
Görselde, Azure portal üzerinde Access Control (IAM) bölümünden bir rol ataması gerçekleştirildiği görülmektedir. Oluşturulan uygulama (A3-ACS-SMTPAPP1), “Communication and Email Service Owner” rolü ile yetkilendirilmiştir. Bu sayede uygulama, ACS servisi üzerinde gerekli işlemleri gerçekleştirebilecek izinlere sahip olur.


Bu adımda, Azure Communication Services üzerinde SMTP ile mail gönderimi yapabilmek için bir SMTP Username (kullanıcı adı) oluşturulmaktadır. Bu yapı, özellikle legacy sistemlerin (örneğin IIS SMTP) ACS ile entegre olabilmesi için kritik bir bileşendir.
Görselde görüldüğü üzere, daha önce oluşturulan Entra Application (A3-ACS-SMTPAPP1) seçilmekte ve bu uygulamaya bağlı bir SMTP kullanıcı adı tanımlanmaktadır. Kullanıcı adı, domain ile birlikte (örneğin [email protected]) oluşturulur ve sistemde unique (benzersiz) olmalıdır.


IIS SMTP Server Kurulumu
Bu adımda, on-prem ortamda bir SMTP relay sunucu oluşturabilmek için Windows Server üzerinde gerekli roller ve özellikler kurulmaktadır. Görsellerde görüldüğü üzere, “Add Roles and Features Wizard” üzerinden Web Server (IIS) rolü ve SMTP Server özelliği seçilerek kurulum gerçekleştirilmektedir.
IIS rolü, SMTP servisinin yönetimi ve yapılandırılması için gerekli altyapıyı sağlarken, SMTP Server özelliği ise mail iletim işlemlerini gerçekleştiren ana bileşendir. Bu iki bileşen birlikte çalışarak, dış sistemlerden gelen mail taleplerini alıp ilgili hedefe yönlendiren bir relay mekanizması oluşturur.


Bu adımda, Windows Server üzerinde kurulan IIS SMTP servisi yapılandırılarak relay mekanizmasının temel ayarları yapılmaktadır. Görsellerde görüldüğü üzere, SMTP Virtual Server Properties ekranında sunucunun IP adresi, bağlantı ayarları ve authentication seçenekleri belirlenmektedir.
“General” sekmesinde SMTP servisinin hangi IP üzerinden çalışacağı tanımlanırken, “Access” sekmesinde ise kimlerin bu sunucu üzerinden mail gönderebileceği ve hangi authentication yöntemlerinin kullanılacağı yapılandırılır. Bu yapı, relay sunucunun güvenli ve kontrollü çalışması için kritik öneme sahiptir.


Bu adımda, IIS SMTP sunucusunun mail’leri doğrudan hedefe göndermek yerine bir Smart Host üzerinden iletmesi sağlanmaktadır. Görselde görüldüğü üzere, Smart Host olarak Azure Communication Services SMTP endpoint’i (smtp.azurecomm.net) tanımlanmıştır.
Bu yapı sayesinde IIS SMTP sunucu, kendisine gelen tüm mail’leri doğrudan internete çıkarmak yerine ACS’e iletir ve mail gönderim süreci güvenli bir şekilde bulut üzerinden gerçekleştirilir.

Bu adımda, IIS SMTP sunucusunun Azure Communication Services ile iletişim kurarken kullanacağı kimlik doğrulama ayarları yapılandırılmaktadır. Görselde, Basic Authentication seçilerek SMTP kullanıcı bilgileri tanımlanmış ve TLS encryption aktif edilmiştir.

Bu adımda, IIS SMTP sunucusunun dış dünyaya mail gönderirken kullanacağı güvenlik ve bağlantı ayarları yapılandırılmaktadır. Görsellerde görüldüğü üzere, Outbound Security ve Outbound Connections ayarları detaylı şekilde düzenlenmiştir.

Test Mail Gönderimi ve Doğrulama
Bu adımda, kurulan mimarinin doğru çalıştığını doğrulamak amacıyla IIS SMTP sunucusu üzerinden test mail gönderimi gerçekleştirilmektedir. Görselde görüldüğü üzere, PowerShell üzerinden yapılan bir test ile belirlenen SMTP sunucusu (172.16.0.5) kullanılarak mail gönderimi sağlanmıştır.
Gönderilen mail’in hedef kullanıcıya başarıyla ulaştığı ve inbox’a düştüğü doğrulanmıştır. Bu test, tüm yapılandırmanın (IIS SMTP → Smart Host → Azure Communication Services) uçtan uca sorunsuz çalıştığını göstermektedir.










Eline sağlık, çok güzel bir yazı olmuş, bu sayede onprem exchange’ i kaldırdım ama kamera sistemi mail atıyor, printer mail atıyor, scanner mail atıyor, bunlar eski uygulamalar peki şimdi ne yapacağım sorusunun cevabı olmuş.
Çok teşekkür ederim hocam.