Przezroczystość danych SMTP
Przygotuj do 65536 bajtów danych SMTP, podwajając kropki na początku wierszy i dodając terminator.
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"Sprawdź przed zastosowaniem
Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.
Modele
Dodaj endpoint zgodny z OpenAI lub Anthropic, podając bazowy URL i klucz API, jeśli jest wymagany. Sprawdź połączenie. Lokalny serwer modelu musi działać; zdalne narzędzia mogą przesyłać dane oddzielnie.
Projekt
Sprawdź pusty tekst i istniejące końce CRLF, odrzucając samotne CR lub LF bez nawiązywania połączenia.
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"Przeglądaj serializowane wyjście na granicy, gdzie liczą się bajty
MailTessera daje programistom środowisko programowania z AI dla Windows do zmian, w których dokładne serializowane wyjście ma znaczenie dla innego systemu. Wprowadź do rozmowy folder projektu, odpowiedni serializator i reprezentatywne wejścia. Poproś asystenta o sprawdzenie granicy między danymi aplikacji a przesyłanymi bajtami przed zaproponowaniem poprawki. Dzięki temu zadanie jest dość konkretne, aby sprawdzić je poza czytelnym podglądem wiadomości.
Na przykład zadanie dotyczące smtp_data.py może badać zakończenia wierszy, kropki początkowe i znacznik końca danych. Poproś o propozycję zmiany z dokładnymi oczekiwaniami bajtowymi i sprawdź używanie wyniku przez otaczający kod. Zachowaj zakres zadania przy serializacji, zamiast zakładać, że funkcja pomocnicza zapewnia dostarczenie wiadomości. Kod wywołujący może mieć własny stan połączenia i reguły awarii wymagające osobnej uwagi.
Uruchom własne testy projektu z pustą treścią, zwykłymi wierszami i wierszami zaczynającymi się kropką. Porównuj bajty bezpośrednio, aby formatowanie wyświetlania nie ukryło różnicy. MailTessera przyjmuje obsługiwane punkty końcowe zgodne z OpenAI lub Anthropic i dane uwierzytelniające, gdy są potrzebne. Model bez filtrów można wybrać, jeśli jest oferowany przez dany punkt końcowy, natomiast ograniczenia, pojemność kontekstu i dostępne narzędzia nadal zależą od modelu i serwera. Kieruj poprawkami na podstawie obserwowanego wyjścia, a nie założenia, że wyjaśnienie modelu dowodzi zgodności protokołu.
Pytania dotyczące serializacji wiadomości
- Dlaczego porównywać bajty zamiast wyświetlonej wiadomości?
Przeglądarka może ukryć różnice w zakończeniach wierszy lub znacznikach końca. Dokładne oczekiwania bajtowe uwidaczniają te różnice w testach, pomagając ustalić, czy propozycja zmienia serializację, nawet gdy tekst wygląda tak samo.
- Czy ten sposób pracy wysyła e-maile?
Przykład dotyczy kodu przygotowującego dane. Nie potwierdza usługi dostarczania ani rzeczywistej akcji wysyłania. Sprawdź serializację niezależnie, a potem, gdy to właściwe, przetestuj integrację dostarczania w kontrolowanym procesie własnego projektu.
- Gdzie przeglądać reguły stanu połączenia?
Sprawdź kod wywołujący serializator i zarządzający połączeniem. Poprawna sekwencja bajtów może zostać użyta na niewłaściwym etapie, więc kontrakt wywołania i kontrakt serializacji należy sprawdzać jako powiązane, ale oddzielne kwestie.
- Co sprawia, że test kropki początkowej jest przydatny?
Podaj dokładny wiersz wejściowy i oczekiwane serializowane bajty, w tym otaczające granice wierszy. Uwzględnij również zwykłe wiersze, aby zmiana obsługiwała przypadek szczególny bez przypadkowego przepisywania treści, która ma pozostać bez zmian.
MailTessera · Zaktualizowano 2026-10-25