Transparansi data SMTP
Siapkan hingga 65536 byte SMTP dengan menggandakan titik awal baris dan menambahkan penutup.
def smtp_data(payload):
if type(payload) is not bytes or len(payload) > 65536:
raise ValueError("bounded bytes")
lines = payload.split(b"\r\n")
if any(b"\r" in x or b"\n" in x for x in lines):
raise ValueError("CRLF lines required")
stuffed = b"\r\n".join(
b"." + x if x.startswith(b".") else x for x in lines)
if stuffed and not stuffed.endswith(b"\r\n"):
stuffed += b"\r\n"
return stuffed + b".\r\n"Tinjau sebelum menerapkan
Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain.
Model
Atur endpoint kompatibel OpenAI atau Anthropic dengan URL dasar dan kunci API jika diperlukan. Uji koneksi. Server model lokal harus berjalan; alat jarak jauh dapat mengirim data secara terpisah.
Proyek
Uji masukan kosong dan akhiran CRLF yang sudah ada, tolak CR atau LF tunggal tanpa membuka koneksi.
def smtp_data(payload):
if type(payload) is not bytes or len(payload) > 65536:
raise ValueError("bounded bytes")
lines = payload.split(b"\r\n")
if any(b"\r" in x or b"\n" in x for x in lines):
raise ValueError("CRLF lines required")
stuffed = b"\r\n".join(
b"." + x if x.startswith(b".") else x for x in lines)
if stuffed and not stuffed.endswith(b"\r\n"):
stuffed += b"\r\n"
return stuffed + b".\r\n"Tinjau keluaran serialisasi pada batas tempat byte berperan penting
MailTessera memberi pengembang ruang kerja pemrograman AI untuk Windows bagi perubahan ketika keluaran serialisasi eksak penting bagi sistem lain. Sertakan folder proyek, serializer terkait, dan masukan representatif dalam percakapan. Minta asisten memeriksa batas antara data aplikasi dan byte yang dikirim sebelum mengusulkan tambalan. Ini membuat tugas cukup spesifik untuk diperiksa melampaui pratinjau pesan yang dapat dibaca.
Sebagai contoh, tugas smtp_data.py dapat memeriksa akhir baris, titik di awal, dan terminator data. Minta usulan perubahan dengan ekspektasi byte eksak dan tinjau cara kode di sekitarnya menggunakan hasil. Pertahankan fokus pada serialisasi, bukan menganggap fungsi pembantu memastikan pengiriman pesan. Pemanggil mungkin memiliki status koneksi dan aturan kegagalan sendiri yang memerlukan perhatian terpisah.
Jalankan pengujian proyek Anda sendiri dengan isi kosong, baris biasa, dan baris yang diawali titik. Bandingkan byte langsung agar format tampilan tidak menyembunyikan perbedaan. MailTessera menerima endpoint kompatibel OpenAI atau endpoint Anthropic yang didukung serta kredensial jika diperlukan. Model tanpa filter dapat dipilih jika ditawarkan melalui endpoint tersebut, sementara batasan, kapasitas konteks, dan alat tersedia tetap bergantung pada model dan server. Gunakan keluaran yang diamati untuk memandu revisi, bukan asumsi bahwa penjelasan model membuktikan kompatibilitas protokol.
Pertanyaan untuk pekerjaan serialisasi pesan
- Mengapa membandingkan byte alih-alih pesan yang ditampilkan?
Penampil dapat menyembunyikan perbedaan akhir baris atau terminator. Ekspektasi byte eksak membuat perbedaan itu terlihat dalam pengujian, sehingga membantu menentukan apakah usulan mengubah serialisasi meskipun teks tampak sama.
- Apakah alur kerja ini mengirim email?
Contoh menyangkut kode yang menyiapkan data. Contoh tidak menetapkan layanan pengiriman atau tindakan pengiriman langsung. Tinjau serialisasi secara independen, lalu uji integrasi pengiriman melalui proses proyek terkendali Anda sendiri jika sesuai.
- Di mana aturan status koneksi perlu ditinjau?
Periksa kode yang memanggil serializer dan mengelola koneksi. Urutan byte yang benar masih mungkin digunakan pada tahap yang salah, sehingga kontrak pemanggil dan kontrak serialisasi harus diperiksa sebagai hal terkait tetapi terpisah.
- Apa yang membuat pengujian titik awal berguna?
Nyatakan baris masukan dan byte serialisasi harapan secara eksak, termasuk batas baris di sekitarnya. Sertakan pula baris biasa agar perubahan menangani kasus khusus tanpa sengaja menulis ulang isi yang harus tetap sama.
MailTessera · Diperbarui 2026-10-25