Misteri titik yang hilang dari isi email
Simple Mail Transfer Protocol yang tidak sesederhana itu
Masalah muncul
- Mendapat penjelasan bahwa titik menghilang dari isi email yang dikirim ke seorang pelanggan.
- Saat email yang sama dikirim ke pelanggan lain, titik tersebut tidak hilang.
Kilas balik proyek
- Sekitar 7 tahun lalu, dikembangkan solusi untuk mengintegrasikan template dokumen ke dalam satu sistem terpadu.
- Klien menggunakan template Microsoft Word untuk menaruh placeholder di dalam dokumen.
- Setiap kali staf mengirim dokumen melalui email, placeholder itu harus diganti dengan isi sebenarnya.
Masalah pengelolaan template
- Ada banyak versi template sehingga sulit dikelola.
- Beberapa template menggunakan syarat dan ketentuan lama, logo lama, font lama, dan sebagainya.
- Dikembangkan solusi agar semua template bisa dikelola secara terpusat.
Implementasi solusi
- Klien dapat mengelola secara terpusat template untuk membuat dokumen PDF, pesan teks, dan isi email.
- Misalnya, mereka bisa menyiapkan template surat sambutan untuk dikirim ke pelanggan baru.
- Template yang berbeda dapat dikonfigurasi untuk tiap metode pengiriman (email, pesan teks, surat).
Reproduksi masalah
- Masalah titik yang hilang hanya terjadi pada email yang dikirim ke pelanggan tertentu.
- Titik tersebut ada di source code template.
- Saat isi email dipratinjau di lingkungan lokal, titik terlihat.
Analisis penyebab
- Saat membuat isi email, ada kode yang membatasi panjang setiap baris.
- Jika baris melebihi batas panjang, baris baru dibuat dan sisa isinya dipindahkan.
- Menurut spesifikasi SMTP, jika sebuah baris dimulai dengan titik, titik tambahan akan disisipkan, lalu server menghapus titik pertama.
Solusi
- Perbaikan kode: jika sebuah baris dimulai dengan titik, sisipkan titik tambahan agar setelah server menghapus satu titik, satu titik tetap tersisa.
- Setelah kode yang diperbaiki diuji, dipastikan titik tidak lagi hilang.
- Masalah diselesaikan dan bug tersebut juga diberitahukan ke tim lain.
Masalah lanjutan
- Beberapa bulan kemudian, tim lain tidak memperbaiki bug yang sama sehingga titik menghilang dari email penting.
- Sebagian pelanggan menerima email yang menampilkan biaya bulanan baru sebagai $2700, bukan $27.00.
- Masalah diselesaikan segera setelah patch kode diterapkan.
Pendapat GN⁺
- Pentingnya memahami spesifikasi SMTP: Untuk menyelesaikan masalah yang dapat terjadi saat mengirim email, penting untuk memahami spesifikasi SMTP secara mendalam.
- Kompleksitas pengelolaan template: Mengelola banyak versi template bisa rumit, dan sistem pengelolaan terpusat diperlukan.
- Teknik debugging: Kemampuan mereproduksi masalah dan menganalisis penyebabnya sangat penting.
- Komunikasi antar tim: Setelah masalah diselesaikan, penting untuk membagikan informasi kepada tim lain.
- Pengujian otomatis: Untuk mencegah masalah seperti ini, ada baiknya memperkenalkan pengujian otomatis.
2 komentar
Sepertinya di judul,
perioddipahami sebagai periode waktu, bukan tanda titik, hahaKomentar Hacker News
Ringkasan kumpulan komentar Hacker News
Sulitnya implementasi klien SMTP
Cerita surat rekomendasi di Jerman
Cron job dan klien SMTP
Dua kebiasaan buruk
Perlu dot-stuffing
Masalah lampiran HTML MIME
Jika karakter pertama adalah titik
Pemberitahuan patch bug
Pengalaman mengimplementasikan server NNTP