Ana içeriğe geç

6.1. Mail#

Bir veya birden fazla uygulamaya ait mail eventlerini kafka üzerinden dinleyerek, event içerikleri ile tanımlanmış mail template'lerini oluşturup ilgili mailin gönderilmesini mail server üzerinden sağlar.

Yetenekler#

  • Birden çok uygulamaya ait mailleri göndermek için kullanılabilir.
  • Mail template ile zengin içerikli mail gönderilebilmesini sağlar.
  • Mail içeriği dinamik olarak son kullanıcı tarafından yönetilmesini sağlar Bkz: notifyWithContent ulaşabilirsiniz.
  • Mail şablonları için çoklu dil desteği sağlar.
  • Mail gönderim işleminin şablon bazlı dinamik olarak aktif/pasif edilmesini sağlar.
  • Mail gönderim işlemlerinin(From,TO,CC,BBC,Gönderim Zamanı) kayıt altına alınmasını sağlar.

İstek Yaşam Döngüsü(Request Lifecycle)#

Notification mail uygulaması kurulu bir ortam için güvenlik(security) kontrolleri ve ön bellek(cache) işlemleri için 7 adımlık network akışı gerçekleşir.

  1. Mail uygulaması konfiguratif olarak verilen kafka topiğini dinler
  2. Kafka üzerinde yeni bir event oluştuğunda event'e ait veriyi consume eder.
  3. Event içerisinde verilmiş veri için mail template varsa RDBMS üzerinden bu veriyi sorgular.
  4. Veri tabanından mail template getirilir.
  5. Mail template sorgusu redis üzerine cache olarak yazılır.
  6. Redis yazma işlemi tamamlanır.
  7. Template event ile gönderilen parametrelere göre doldurulur ve mail sunucusuna gönderilir.
  8. Mail gönderimi işlemi "Mail Gönderim İşlem Günlüğü'ne kayıt edilir.

CACHE_TYPE:'simple' olarak ayarlandığında her bir instance in-memory cache kullanımına geçer ve redis bağlantısı aramaz. Bu durumda 5. ve 6. adımlar devre dışı bırakılır. Cachable metodlar için ikinci çağrımda cache evict edilmediyse 3. ve 4. adımlara uğramadan akış tamamlanır.

Bu yapının örnek kullanımı OAuth içerisinde hvl-oauth-event-starter uygulamasında görebilirsiniz.