IIS SMTP Relay ile Azure Communication Services Entegrasyonu

2 saat önce 5

Günümüzde birçok kurum, yıllar içerisinde gelişen başvuru ekosistemleri dolayı hala olan miraslar (eski) sistemler üzerinden postalar gönderimi gerçekleştirmektedir. Özellikle web formları, ERP uygulamaları ya da özel yazılımlar, SMTP üzerinden doğrudan postalar sunucularına bağlanarak iletişim kuracak şekilde tasarlanmıştır. Ancak bu yaklaşım, modern güvenlik standartları ve gökyüzü tabanlı mimariler karşısında vahim riskler barındırmaktadır.

Geleneksel yöntemlerde sıkça karşılaşılan SMTP kullanıcı adı ve şifre paylaşımı, hem kişilik malumatlerinin güvenliği hem da müessese postalar altyapısının korunması açısından eleştirel 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 şöhret kaybı gibi operasyonel sualnlara yolda açavakıf olmaktedir.

Bu noktada kurumlar, şimdiki sistemlerini tamamlanmış değiştirmek yerine, kademeli ve kontrollü tek geçiş yaklaşımı benimsemektedir. Legacy sistemlerin ihtiyaçlarını karşılamaya devam ederken, aynı zamanda daha güvenli ve sürdürülebilir tek postalar gönderim altyapısı oluşturmak mümkündür.

Bu makalede, on-prem ortamlarda kullanılan SMTP tabanlı postalar gönderim yöntemlerinin risklerini ele alacak; buna karşılık daha güvenli alternatifler olan SMTP relay mimarileri, ara tabaka (relay) sunucular ve Azure Communication Services gibi modern API tabanlı çözümler ile nasıl hibrit tek 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 ya da API üzerinden postalar gönderimi
    • Domain doğrulama (SPF, DKIM)
    • Yüksek dağıtım oranı (deliverability)
  • SMS (Text Message)
    • Global SMS gönderimi
    • Tek yönlü ve çift yönlü iletilaşma
  • Voice (Sesli Arama)
    • PSTN tarama (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 ya da cemaat görüşmeleri

Mesajlaşma & Gerçek Zamanlı İletişim

  • Chat (Gerçek zamanlı iletilaşma)
    • Uygulama içi chat altyapısı
    • Kullanıcılar arası anlık iletilaşma
  • Event Notifications
    • Mail, SMS gibi işlemler için event-based bildirimler
    • Delivery, bounce, başarısızlıklar takibi

Kimlik & Güvenlik

  • Identity Management
    • ACS token tabanlı kişilik doğrulama
    • Kullanıcı bazlı erişim kontrolü
  • Access Control (API Key / Connection String)
    • Güvenli erişim için anahtarları 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 icra analizi

Entegrasyon & Genişletilebilirlik

  • REST API & SDK Desteği
    • .NET, Java, Python, JavaScript SDK’ları
    • Kolay başvuru entegrasyonu
  • SMTP Desteği (Email için)
    • Legacy sistemler için SMTP uyumluluğu

Bu makaleleyi hazırlarken tek kaç örnek senaryoda paylaşmak istiyorum

1 – Senaryolar

Ortamınızda miraslar sistemler olabilir printer, yazıcı vb. bununla birlikte siz modern ve daha güvenli tek 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 dış relay ve smtp server gibi yöntemler seçenek bu işi tamamlanmış 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 kaynaklar gruplar altında oluşturulacağı belirlenmektedir. Bu seçimler, hem bedel yönetimi hem da kaynakların düzenli tek şekilde gruplanması açısından önemlidir. Ardından resource’a manalı tek ad verilmekte (örneğin A3-ACS) ve servis lokasyonu (region) seçilmektedir. Burada genelleme uygulamaya en yakın ya da regülasyonlara elverişli bölgenin seçilmesi önerilir.

Email Domain Bağlantısı

Bu adımda, Azure Communication Services üzerinde postalar gönderimi yapavakıf oldu için kullanılacak domain’in sisteme tanımlanması ve doğrulanmış tek domain ile ilişkilendirilmesi gerçekleştirilmektedir.

Ekranda görüldüğü üzere, ACS servisine doğrudan tek domain eklenememekte; öncelikle Azure tarafında tek Email Service oluşturulması ve bu servis altında domain doğrulama işlemlerinin tamamlanmış olması lüzummektedir. Yalnızca doğrulanmış (verified) domain’ler bu aşamada seçilebilir. Bu doğrulama süreci genelleme DNS kayıtları (SPF, DKIM vb.) üzerinden yapılır.

Bu adımda, Azure Communication Services üzerinde postalar 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 sonraları Azure, domain sahipliğinin doğrulanabilmesi için lüzumli DNS kayıtlarını (özellikle TXT record) sunmaktadır. Bu kayıtların domain’in DNS yönetim paneline eklenmesi ile birlikte, sistemleri domain’in gerçekten size ait olduğunu doğrular. Doğrulama tamamlandıktan sonraları domain “verified” durumuna geçer.

Bu adımda, Azure Communication Services ile güvenli iletişim kuravakıf oldu için Azure Entra ID (Azure AD) üzerinde tek başvuru (App Registration) oluşturulmaktadır. Bu uygulama, ACS servisine erişecek olan sistemin kimliğini temsilcilik eder.

Görsellerde görüldüğü üzere, öncelikle tek başvuru kaydı oluşturulmakta (örneğin A3-ACS-SMTPAPP1) ve ardından bu başvuru için tek client sırlar üretilmektedir. Bu secret, uygulamanın kişilik doğrulama sırasında kullanacağı “şifre” niteliğindedir ve API erişimi için lüzumlidir.

Bu adımda, Azure Communication Services üzerinde oluşturulan uygulamanın (App Registration) ilgili servise erişebilmesi için ytesirlendirme işlemi yapılmaktadır.

Görselde, Azure portal üzerinde Access Control (IAM) bölümünden tek görev ataması gerçekleştirildiği görülmektedir. Oluşturulan başvuru (A3-ACS-SMTPAPP1), “Communication and Email Service Owner” rolü ile ytesirlendirilmiştir. Bu sayede uygulama, ACS servisi üzerinde lüzumli işlemleri gerçekleştirebilecek izinlere malik olur.

Bu adımda, Azure Communication Services üzerinde SMTP ile postalar gönderimi yapavakıf oldu için tek SMTP Username (kullanıcı adı) oluşturulmaktadır. Bu yapı, özellikle miraslar sistemlerin (örneğin IIS SMTP) ACS ile entegre olabilmesi için eleştirel tek bileşendir.

Görselde görüldüğü üzere, daha önce oluşturulan Entra Application (A3-ACS-SMTPAPP1) seçilmekte ve bu uygulamaya bağlı tek SMTP kullanıcı adı tanımlanmaktadır. Kullanıcı adı, domain ile birlikteki (örneğin [email protected]) oluşturulur ve sistemde unique (benzersiz) olmalıdır.

IIS SMTP Server Kurulumu

Bu adımda, on-prem ortamda tek SMTP relay sunucu oluşturavakıf oldu için Windows Server üzerinde lüzumli 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 lüzumli altyapıyı sağlarken, SMTP Server özelliği ise postalar iletim işlemlerini gerçekleştiren esas bileşendir. Bu ikisi bileşen birlikteki çalışarak, dış sistemlerden gelen postalar taleplerini alıp ilgili hedefe yönlendiren tek relay mekanizması oluşturur.

Bu adımda, Windows Server üzerinde kurulan IIS SMTP servisi yapılandırılarak relay mekanizmasının ilköğretim 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 postalar 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 eleştirel öneme sahiptir.

Bu adımda, IIS SMTP sunucusunun mail’leri doğrudan hedefe göndermek seçenek tek 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 seçenek ACS’e iletir ve postalar gönderim süreci güvenli tek şekilde gökyüzü üzerinden gerçekleştirilir.

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

Bu adımda, IIS SMTP sunucusunun dış dünyaya postalar 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 testleri postalar gönderimi gerçekleştirilmektedir. Görselde görüldüğü üzere, PowerShell üzerinden yapılan tek testleri ile belirlenen SMTP sunucusu (172.16.0.5) kullanılarak postalar gönderimi sağlanmıştır.

Gönderilen mail’in hedefleri 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 sualnsuz çalıştığını göstermektedir.

>> Tüm Makaleyi Oku <<

Platformumuz; Teknoloji, Spor, Sağlık, Eğlence, Uluslararası, Edebiyat, Bilim ve daha fazlası olmak üzere farklı konu başlıkları altında, kısa ve öz haber formatı ile kullanıcıların zamandan tasarruf etmesini hedefler. Karmaşadan uzak, sade ve anlaşılır içerik yapısı sayesinde ziyaretçiler aradıkları bilgiye hızlıca ulaşabilir. techforum.com.tr, bilgi kirliliğini önleyerek yalnızca güvenilir kaynaklardan elde edilen içerikleri yayınlamaya özen gösterir.