Batasan jumlah karakter per baris dalam email

Latar Belakang

Jumlah karakter yang dapat dikirim per baris pada email melalui SMTP dibatasi sebanyak 1000 karakter, termasuk baris baru. Batasan ini tertuang dalam RFC 5321, bagian 4.5.3.1.6. Text Line.

Hal ini sepertinya tidak menjadi masalah karena tanpa perlu mengetahui jumlah batasan karakter per baris dalam email, secara naluriah kita membatasi jumlah karakter yang terdapat dalam 1 baris dengan memberikan baris baru pada setiap tag pembuka dan penutup elemen.

Namun dalam framework modern seperti Ruby on Rails, hal ini dapat menjadi masalah jika menggunakan bahasa templating yang melakukan kompilasi html secara teroptimasi, sebagai contoh, bahasa templating Slim.

Apa Yang Terjadi?

Kompilasi pada slim dalam development environment tidak menggunakan optimasi, dan secara sengaja memberikan tampilan html yang terindentasi, hal ini dapat ditemukan pada dokumentasi konfigurasi slim.

Hasil kompilasi yang terindentasi memberikan dukungan dalam melakukan debugging, dengan demikian mempermudah tahapan pengembangan, namun hal ini tidak demikian dalam production environment, dan dengan jelas tertera pada pilihan yang tersedia, bahwa hal ini dimatikan secara default karena memperlambat kinerja sistem, dengan demikian fitur ini tidak diaktifkan pada production environment.

Hal ini mengakibatkan email yang menggunakan bahasa templating slim akan mengalami masalah pada production environtment karena dapat dipastikan akan melanggar batasan RFC 5321 mengenai jumlah karakter maksimal 1000 per baris termasuk baris baru.

Solusi Permasalahan

Mengaktifkan fitur indentasi pada production environment bukanlah pilihan, dan dapat dipastikan hal tersebut tidak boleh diaktifkan bahkan jika hanya untuk email ataupun fitur lainnya karena akan memperlambat sistem.

Dengan demikian solusi yang dapat dilakukan adalah dengan mengubah bahasa templating yang dipergunakan untuk email menggunakan bahasa templating ERB, dengan demikian baris baru pada email tetap dipertahankan, sehingga batasan 1000 karakter per baris tidak dilanggar.