Прозорість даних SMTP
Підготуйте до 65536 байтів SMTP, подвоївши крапки на початку рядків і додавши термінатор.
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"Перевірте перед застосуванням
Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
Моделі
Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
Проєкт
Перевірте порожній ввід і готові закінчення CRLF, відхиляючи окремі CR чи LF без відкриття з’єднання.
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"Перевіряйте серіалізований вихід на межі, де важливі байти
MailTessera надає розробникам робоче середовище з ШІ для програмування у Windows для змін, де точний серіалізований вихід важливий іншій системі. Додайте до обговорення папку проєкту, відповідний серіалізатор і характерні входи. Попросіть помічника перевірити межу між даними програми й переданими байтами перед пропозицією виправлення. Це робить завдання достатньо конкретним для перевірки, що виходить за межі читабельного перегляду повідомлення.
Наприклад, завдання з smtp_data.py може досліджувати закінчення рядків, початкові крапки та завершувач даних. Попросіть запропонувати зміну з точними байтовими очікуваннями й перевірте, як навколишній код використовує результат. Зосередьте завдання на серіалізації, не припускаючи, що допоміжна функція забезпечує доставку повідомлення. Код виклику може мати власний стан підключення й правила збоїв, які потребують окремої уваги.
Запустіть власні тести проєкту з порожнім вмістом, звичайними рядками й рядками, що починаються з крапки. Порівнюйте байти безпосередньо, щоб форматування відображення не приховало різницю. MailTessera приймає підтримувані кінцеві точки, сумісні з OpenAI, або Anthropic та облікові дані за потреби. Модель без фільтрів можна вибрати, якщо вона пропонується через цю точку, а обмеження, місткість контексту й доступні інструменти залежать від моделі та сервера. Спрямовуйте виправлення за спостережуваним результатом, а не за припущенням, що пояснення моделі доводить сумісність із протоколом.
Запитання щодо серіалізації повідомлень
- Навіщо порівнювати байти замість відображеного повідомлення?
Переглядач може приховувати відмінності закінчень рядків або завершувачів. Точні байтові очікування роблять ці відмінності видимими в тестах і допомагають визначити, чи змінює пропозиція серіалізацію, навіть якщо текст виглядає однаково.
- Чи надсилає цей процес електронну пошту?
Приклад стосується коду, що готує дані. Він не підтверджує наявність служби доставки або дії фактичного надсилання. Перевіряйте серіалізацію незалежно, а потім за потреби тестуйте інтеграцію доставки у власному контрольованому процесі проєкту.
- Де перевіряти правила стану підключення?
Дослідіть код, що викликає серіалізатор і керує підключенням. Правильна байтова послідовність усе ще може використовуватися на неправильному етапі, тому контракт виклику й контракт серіалізації слід перевіряти як пов’язані, але окремі питання.
- Що робить тест початкової крапки корисним?
Зазначте точний вхідний рядок і очікувані серіалізовані байти, включно з навколишніми межами рядків. Додайте також звичайні рядки, щоб зміна обробляла особливий випадок без випадкового переписування вмісту, який має залишитися незмінним.
MailTessera · Оновлено 2026-10-25