E-posta gövdesinden kaybolan noktanın gizemi
Basit olmayan Basit Posta Aktarım Protokolü
Sorunun ortaya çıkışı
- Bir müşteriye gönderilen e-postanın gövdesinde noktaların kaybolduğu söylendi.
- Aynı e-posta başka bir müşteriye gönderildiğinde noktalar kaybolmuyordu.
Projeye dönüş
- Yaklaşık 7 yıl önce, belge şablonlarını tek bir sistemde birleştiren bir çözüm geliştirilmişti.
- İstemci, belgelere yer tutucular eklemek için Microsoft Word şablonları kullanıyordu.
- Çalışanlar belgeyi e-posta ile her gönderdiğinde bu yer tutucuların gerçek içerikle değiştirilmesi gerekiyordu.
Şablon yönetimi sorunu
- Birden fazla şablon sürümü vardı ve bunları yönetmek zordu.
- Bazı şablonlarda eski hüküm ve koşullar, logolar, yazı tipleri vb. kullanılıyordu.
- Tüm şablonların merkezi olarak yönetilebildiği bir çözüm geliştirildi.
Çözümün uygulanması
- İstemci, PDF belgeleri, SMS mesajları ve e-posta gövdeleri üretecek şablonları merkezi olarak yönetebiliyordu.
- Örneğin, yeni bir müşteriye gönderilecek karşılama mektubu şablonu ayarlanabiliyordu.
- Her iletim yöntemi için (e-posta, SMS, posta) farklı şablonlar yapılandırılabiliyordu.
Sorunun yeniden üretilmesi
- Noktaların yalnızca belirli bir müşteriye gönderilen e-postalarda kaybolduğu sorunu ortaya çıktı.
- Şablonun kaynak kodunda noktalar vardı.
- E-posta gövdesi yerel ortamda önizlendiğinde noktalar görünüyordu.
Sorunun nedeninin analizi
- E-posta gövdesi oluşturulurken her satırın uzunluğunu sınırlayan bir kod vardı.
- Bir satır bu uzunluğu aşarsa yeni bir satır oluşturuluyor ve kalan içerik oraya taşınıyordu.
- SMTP spesifikasyonuna göre bir satır nokta ile başlıyorsa fazladan bir nokta eklenir ve sunucu ilk noktayı siler.
Çözüm
- Kod düzeltildi: Bir satır nokta ile başlıyorsa, sunucu silse bile bir noktanın kalması için fazladan bir nokta eklendi.
- Düzeltilmiş kod test edildi ve noktaların artık kaybolmadığı doğrulandı.
- Sorun çözüldü ve hata diğer ekiplere de bildirildi.
Sonraki sorun
- Birkaç ay sonra başka bir ekip aynı hatayı düzeltmediği için önemli bir e-postada noktalar kayboldu.
- Bazı müşteriler yeni aylık ücretin $27.00 yerine $2700 olarak göründüğü e-postalar aldı.
- Kod hemen yamalanarak sorun çözüldü.
GN⁺ görüşü
- SMTP spesifikasyonunu anlamanın önemi: E-posta gönderimi sırasında ortaya çıkabilecek sorunları çözmek için SMTP spesifikasyonunu derinlemesine anlamak önemlidir.
- Şablon yönetiminin karmaşıklığı: Birden fazla şablon sürümünü yönetmek karmaşık olabilir ve merkezi bir yönetim sistemi gerektirir.
- Hata ayıklama becerileri: Sorunu yeniden üretmek ve nedenini analiz etmek için hata ayıklama becerileri önemlidir.
- Ekipler arası iletişim: Sorun çözüldükten sonra bilgiyi diğer ekiplerle paylaşmak önemlidir.
- Otomatik testler: Bu tür sorunları önlemek için otomatik testlerin kullanıma alınması faydalıdır.
2 yorum
Başlıkta
periodkelimesini nokta değil, süre/dönem olarak yorumlamış gibi görünüyor hahaHacker News görüşü
Hacker News yorumları özeti
SMTP istemcisi uygulamanın zorluğu
Almanya'daki referans mektubu hikâyesi
Cron job ve SMTP istemcisi
mailutilsgibi bir program kullanılabilir.MAILTOdeğişkeni kullanılarak e-posta adresi ayarlanabilir.İki kötü alışkanlık
Dot-stuffing gerekliliği
HTML MIME ek dosyası sorunu
İlk karakterin nokta olması durumu
Hata düzeltme bildirimi
NNTP sunucusu uygulama deneyimi