Naughter software

Source    ::::    http://www.naughter.com/smtp.html

 

Naughter Software Logo

CPJNSMTPConnection v3.16 Zbiór klas MFC do obsługi protokołu SMTP
Zapraszamy do CPJNSMTPConnection, zbiór klas MFC do obsługi protokołu SMTP. SMTP dla tych, którzy nie znają dobrze wszystkich protokołów internetowych jest to protokół używany do wysyłania poczty.
Także dołączone do protokołu SMTP klas w download jest klasa o nazwie “CPJNMD5Hash”, który przewiduje obliczenie skrótu MD5 skrótami i HMACs używając MS Crypto API, a także klasę o nazwie “CNTLMClientAuth” która stanowi wielorazowy po stronie klienta dla uwierzytelniania NTLM.
Ważne!: Proszę zwrócić uwagę, że zostałem poinformowany, iż CPJNSMTPConnection jest używany do tworzenia i przesyłania niezamawianej korespondencji. Nie było to intencją kodeksu i autor wyraźnie zabrania stosowania kodeksu dla dowolnego oprogramowania tego rodzaju.
Proszę zauważyć, że od v3.09, kod jest teraz dla Visual C++ 2013 lub później. Nie będę się z obsługą VC 6 juz na ten kod, więc prosze nie mnie e-mail z prośbą o podanie tego . Pamiętaj VC 6 jest obecnie siedemnaście latek kompilatora. Teraz czas na uaktualnienie do VC 2013!

Odsyłacze
• Więcej informacji na temat protokołu SMTP (Simple Mail Transfer Protocol) Powinieneś przeczytać RFC 821.
• Informacje na temat ESMTP (Extended Simple Mail Transfer Protocol), który obsoletes pierwotnego SMTP RFC, powinieneś przeczytać RFC 2821.
• RFC 2045 Która definiuje sposób wyświetlania załączników MIME mają być przetrzymywana w standardową wiadomość SMTP.
• RFC 822 I RFC 2822 określić sposoby standardowych nagłówków są używane przez SMTP.
• RFC 2110 I RFC 2557 osłaniająca MHTML (aka e-mail w formacie HTML).
• Base64, która jest używana w różnych miejscach w SMTP jest opisane w RFC 1113 i RFC 1421. Jeśli został ostatecznie określony jako Base64 w RFC 2045
• Szczegóły na temat uwierzytelniania SMTP są rozproszone w wielu dokumentach RFCs m.in. RFC 1731, RFC 1869, RFC 2195, RFC 2095, RFC 2245, RFC 2554, RFC 2595, RFC 4616 i RFC 4954.
• CRAM-MD5 schemat uwierzytelniania używa HMAC (szyfrowany Message Authentication Code), który jest opisany w RFC 2104, natomiast MD5 jest opisane w RFC 1321.
• RFC 3461, RFC 3464 RFC 3798 i RFC 3885 opisać DSN (stan dostarczania powiadomień).
• Strona http://www.activexperts.com/support/activemail/auth/ zawiera dobry opis AUTH LOGIN, AUTH PLAIN i AUTH CRAM-MD5 systemy uwierzytelniania, która jest realizowana poprzez CPJNSMTPConnection.
• RFC 3207 Definiowanie sposobu, w jaki obsługuje STARTTLS.

Funkcje
• Prosty i czysty C++ interfejs.
• Interfejs jest synchroniczna, która zapewnia łatwiejsze programowanie model niż przy użyciu gniazda asynchroniczne.
• Kod nie polegać na gniazda MFC klas. Zajęcia te mają szereg wad, z których jeden powoduje problemy, gdy są one używane w NT usług.
• Kod ten może być z powodzeniem stosowany w aplikacji konsoli bez żadnych problemów (znów nie jest tak w przypadku gniazda MFC classes).
• Konfigurowalny czas oczekiwania dla połączeń można ustawić poprzez klasy API.
• Zajęcia są w pełni zgodne ze standardem Unicode i obejmują Unicode wbudowane opcje w pliku pola pracy.
• Od v1.1, klas teraz w pełni obsługuje wysyłanie pliku osprzętu.
• Multi CC, BCC i odpowiedź do wsparcia jest włączone.
• Wsparcie dla regularnych adres email formaty i wiele adresów e-mail parsowanie.
• Pełne wsparcie dla MIME i MHTML (aka e-mail w formacie HTML).
• Pełne wsparcie dla MIME zestawem znaków.
• Obszerne próbki dołączony program, który wykonuje większość klas funkcji.
• Jako v2.61, klas, teraz w pełni obsługuje wysyłanie wiadomości e-mail za pośrednictwem protokołu SSL. Oznacza to, że na przykład możesz używać Gmail serwera SMTP “smtp.gmail.com” na porcie 465. Należy również pamiętać, że wszystkie inne cechy, takie jak uwierzytelnianie są w pełni obsługiwane za pośrednictwem protokołu SSL. Na przykład aby użyć Gmail będzie wymagać pewnej formy uwierzytelniania takich jak AUTH PLAIN, ponieważ nie działa jako open relay (która ułatwiałaby spamu).
• Obsługuje wiele protokołów uwierzytelniania, w tym “AUTH CRAM-MD5”, “AUTH LOGIN”, “AUTH PLAIN” i “AUTH NTLM”. “Automatyczne wykrywanie” formy uwierzytelniania są również obsługiwane. W tym trybie uwierzytelnienie protokoły obsługiwane przez serwer są wykrywane i najbardziej odpowiedni protokół jest używany.
• Jak v grubość2,65, zajęcia obejmować kompleksowe wsparcie dla DSN (stan dostarczania powiadomień).
• Jako v2.84, zajęcia obejmują wsparcie dla MDN (Powiadamianie o losie wiadomości)
• Jako v2.86, klas obsługuje STARTTLS. Tego polecenia SMTP umożliwia standardowe SMTP zwykły tekst połączenia uziemiającego i zakładając serwer SMTP obsługuje STARTTLS, połączenie może zostać rozbudowana do szyfrowanego połączenia środkowego strumienia. Często serwery SMTP oferuje tylko STARTTLS przez port 25 zamiast SSL / TLS na innym porcie.
• Opcjonalnie obsługuje adres nagłówek kodowania.
• Jako v3.09, klasy są obsługiwane tylko na VC 2013 lub później.

enclosed zip file Zawiera CPJNSMTPConnection kodu źródłowego oraz prosty program testujacy na korzystanie ze wszystkich funkcji, klas.

Copyright
• Użytkownik może zawierać kod źródłowy w dowolnym produkcie (komercyjne, shareware, freeware lub inaczej) gdy produkt jest uwalniana w postaci binarnej.
• Użytkownik może modyfikować kod źródłowy w jakikolwiek sposób chcesz chyba nie możesz zmienić szczegóły dotyczące praw autorskich na górze każdego modułu.
• Jeśli chcesz rozpowszechniać kod źródłowy aplikacji, a następnie można dystrybuować wersje wydane przez autorkę. Ma to na celu utrzymanie pojedynczego punktu dystrybucyjnego do kodu źródłowego.
• Uwaga!!: Proszę zwrócić uwagę, że zostałem poinformowany, iż CPJNSMTPConnection jest używany do tworzenia i przesyłania niezamawianej korespondencji. Nie było to intencją kodeksu i autor wyraźnie zabrania stosowania kodeksu dla dowolnego oprogramowania tego rodzaju bez mojej wyraźnej zgody na piśmie.

Aktualizacje
V1.0 (26 maja 1998)
• Pierwsze publiczne wydanie.
V1.1 (17 czerwca 1998)
• Stałe w przypadku gdy pojedyncza kropka występuje na własną w ciele wiadomości
• Klasy teraz obsługuje opcjonalną “zwrotny” (w polu nagłówka
• Klasy teraz pełną obsługę plików załączników
• Niektóre przerobić na treści pliku pomocy
V1.11 (18 czerwca 1998)
• Stała z nadpisywaniem pamięci problem jaki występował z bufora używanego do kodowania base64, załączniki.
V1.12 (27 czerwca 1998)
• W przypadku gdy linia rozpoczyna się od “.”, ale zawiera inne tekst jest teraz także zaspokoić. Patrz: RFC821, Rozdział 4.5.2 dla dalszych szczegółów.
• M_sBody w CSMTPMessage został wykonany dobrze zabezpieczona. Aplikacje klienckie należy teraz połączyć AddBody 999. Gwarantuje to, że FixSingleDot jest tylko nazywany raz, nawet jeśli sam jest wysyłana wiadomość kilka razy.
• Rozwiązano kilka problemów z tym jak mim granice zostały zdefiniowane i wysłane.
• Zlikwidowal wiadomość unreferenced parametru formalnego ostrzeżenia kompilatora zatrzymał release build.
• Dzięki Chris Davidson za wszystkie sugestie i poprawki błędów.
V1.2 (11 sierpnia 1998)
• VC 5 plik projektu jest teraz pod warunkiem
• Matryca mocowania które klasy wiadomości zawiera teraz wykorzystuje odniesienia zamiast wskaźniki.
• Teraz wykorzystuje Sleep(0) utoruje drogę do naszych czasów plaster zamiast Sleep(100) Jest to preferowany sposób zapisywania odpytywania kod stylu w Win32 bez poważnego wpływu na wydajność.
• Wszystkie oświadczenia Trace teraz wyświetlić wartość jak wracały z GetLastError
• Szereg dodatkowych twierdzi dodano
• A AddMultipleRecipients funkcja została dodana, które wspierałyby dodano liczba osób korzystających w jednym czasie z jednym ciągiem. Dzięki przejdź do Boba Yang sugerowane kombinacje funkcji i kodu.
• Dodatkowy zapis wypowiedzi zostały dodane w celu debugowania
V1,21 (12 września 1998)
• Usunięto paru unreferenced zmiennej kompilator ostrzeżeń wykrytych podczas zajęć został skompilowany na Visual C++ 6.0.
• Stały poważny bug, która wywołała wiadomość wołają kiedy CSMTPAttachment spalające był niewolnikiem InitInstance próbki app. To było nieumyślnie wprowadzone w wersji 1.2. Fix ma przywrócić fix 2) jak zrobić na v1.2. To nowe rozwiązanie będzie również przyczynić się do zmniejszenia liczby przywiązanie obrazy przechowywane w pamięci w jednym czasie.
• Stała kilka błędów w pliku pomocy.
8 listopada 1998 r.
Philip K Chung przybrał CPJNSMTPConnection klasy i opracowała wersję, która posiada następujące funkcje:
• Nr więcej MFC
• Wszystkich klas kolekcji i ciąg klas od STL
• Próbowano ją thread safe przez uczynienie jej zasadniczo wolnym-wątkową (tj. powinna być w stanie obsłużyć wiele wątków, wprowadzając swój kod w tym samym czasie
• Złamał ją na oddzielne moduły i udoskonalił precompiled heder, aby przyspieszyć opracowywanie
• Przekręcał całą rzecz do DLL pojedynczy punkt wejścia, tj. zobacz publiczny pliku nagłówka
• Zmieniła się struktura katalogów wokół publicznego. plik nagłówka jest pod …/Common/include i wypadkowa DLL zostanie skopiowana do …/Common/bin
• Dodano wsparcie dla CC i BCC
Kod można pobrać here. Chciałbym prosić, aby przesyłać wszelkie zapytania odnoszące się do tego kodu do Philipa jak jestem tylko hosting kodeks jako przysługę mu, jako on nie utrzymuje witrynę reminiscencji.
V1.3 (18 stycznia 1998)
• Pełna obsługa została dodana dla CC (Carbon Copy) i Bcc (UDW).
V1.31 (22 lutego 1999)
• Dodano Get i metody SetTitle pozwalajä cym pliki osprzętu tytuł był inny, oryginalny plik.
• Zaktualizowany przykładowy share ma obejmować bardziej opisowej wiersza tematu.
• Domyślny limit czasu dla kodu, kiedy debug build jest zbudowany został ustawiony na 60 sekund.
• Poprawiono odczyt odpowiedzi z serwera poprzez wdrożenie growable Bufor odbiorczy.
• Zaktualizowane informacje na temat odpowiednich RFC dokumenty mogą zostać odczytane.
V1.32 (25 marca 1999)
• Teraz śpi przez 250 ms zamiast pokora czasu wycinka. Pomaga to zmniejszyć zużycie CPU podczas oczekiwania na dane, które kończą się w obsadzie.
V1.33 (14 maj 1999)
• Zaktualizowano dokumentację można znaleźć w dokumencie RFC 822.
• Fixed a bug ze sposobem, w jaki kod generuje strefa czasowa pól w nagłówkach Data. Dzięki Randy A. Scott zgłoszenie tego Bugu.
V1.34 (10 września 1999)
• Ulepszone CSMTPMessage::GetHeader na polu mime, nawet gdy brak załączników są ujęte.
V1.35 (5 października 1999)
• Stałe 2 Poziom 4 ostrzeżenia podczas skompilowany przy użyciu VC 6.
V1.36 (16 lutego 2000)
• Stałe innego kompilatora problem gdy zestawiane z VC 6.
V1.37 (19 marca 2000)
• Stały problem w GetHeader na Nie-Angielskimi Językami Windows maszyn
• Obecnie dostarczany z VC 5 stanowiska pracy. Ja przypadkowo wysłane a VC 6 wersja w jednym z poprzednich wersji kodu.
• Rozwiązano kilka problemów UNICODE
• Zaktualizowano przykładowy app celowo wołają przed podłączeniem do autora serwera SMTP.
V1.38 (26 marca 2000)
• Zaktualizowano przykładowy app dostarczany z kodem, który należy mini klienta poczty. Powinno to teraz również dać lepsze pojęcie o tym, co można wykorzystać kod.
V1.39 (28 marca 2000)
• Ustaw tryb zwalniania timeout na 10 sekund. 2 sekundy był uciążliwy dla slow dial up networking połączeń.
V1.40 (7 maja 2000)
• Dodatkowo niektórzy wołają w CSMTPSocket::Connect.
V1.41 (20 czerwca 2000)
• Usunięte podstawy64 nadajnik z tego pliku
• Dodał base64 encoder/decoder wdrożenia w osobnym pliku. Zrobili to ponieważ base64 dekodowanie nie był częścią poprzedniego wdrożenia
• Dodano wsparcie dla ESMTP połączenia. Klasy teraz próbę uwierzytelnienia użytkownika w ESMTP server za pomocą nazwy użytkownika i hasła. Do tego podłączyć teraz wymaga nazwy użytkownika i hasła w postaci parametrów. Mogą one być puste. W takim przypadku ESMTP uwierzytelnianie nie jest próba
• Klasa ta może teraz obsłużyć AUTH LOGIN i AUTH LOGIN PLAIN systemy uwierzytelniania
• Dodane pliki md5.* zawierające MD5 digest generowanie kodu po modyfikacji tak, że złączona z VC++ 6
• Dodał CRAM-MD5 procedura logowania.
• Należy pamiętać, że wsparcie dla uwierzytelniania SMTP został dodany przez Puneet Pawaia do którego jestem wdzięcznością doceniany za ciężką pracę.
V2.0 (21 czerwca 2000)
• Zawiera teraz liczbę brakujących plików z pliku zip.
• Zaktualizowano informacje o numerze wersji v2, aby odzwierciedlić zasadnicze zmiany, które nastąpiły w v1.41
V2.01 (10 lipca 2000)
• Stały problem z wysyłaniem załączników > 1K.
• Zmieniono parametry CPJNSMTPConnection::podłączanie
V2.02 (30 lipca 2000)
• Fixed a bug w AuthLogin który był przesyłających nazwa użytkownika i hasło z dodatkowym “=”, która wywołała login na niepowodzenie. Dzięki Victor Vogelpoel dla znalezienia tej.
V2.03 (5 września 2000)
• Dodano CSMTP_NORSA preprocesor makra, aby umożliwić CPJNSMTPConnection kod, który ma być skompilowany bez polegania na RSA kod.
V2.04 (28 grudnia 2000)
• Usunąć niewykorzystywane zmienne od ConnectESMTP.
• Dozwolone nazwy hosta jak wysłać polecenie HELO do wyszczególnienia w czasie użytkowania oprócz używania nazwy hosta komputera klienckiego
• Stałym problemem, z której odjeżdżają pociągi znaków ASCII nie zostaną prawidłowo zakodowane w ofercie-wersja do wydruku ciała wysłana.
• Dodano wsparcie dla definiowanych przez użytkownika charset do treści wiadomości.
• Mima granice są teraz wysyłane zawsze niezależnie od tego, czy zostały włączone, czy nie. Jest to wymagane, jak ciało jest za pomocą przytoczona niezadrukowane.
• Fixed a bug w sendLines która wywołała wiadomość małych jednostek, które mają być przesyłane niepoprawnie
• Teraz w pełni obsługuje własne nagłówki w wiadomości SMTP
• Umawiają się na “kopiuj i wklej” bug gdzie domyślny port dla SMTP gniazdo klasa była 110.
• Możesz teraz podać adres na jaki socket jest więźniem. Umożliwia to programista, aby zdecydować, na którym NIC dane powinny być wysłane z. Jest to szczególnie użyteczne w przypadku maszyny z wieloma adresami IP.
• Dodanie funkcji połączenia SMTP do klasy auto dial i auto rozłączyć się z Internetem, jeśli tego sobie życzą.
• Próbka app został ulepszony, aby umożliwić automatyczne wybieranie i wiążące dla adresów IP, który ma zostać skonfigurowany.
• Dzięki przejdź do Jarosława Liapkov, Josef Hampl, Duncan Granulatorów, Fritz Roland “Nick”, Bjorklund, Lev Elbert i Perry Sprawozdawczyni do szukania tych problemów i/lub sugerowanie udoskonaleń.
V2.1 (14 maja 2001)
• Charset teraz domyślnie do ISO 8859-1 zamiast us-ascii
• Usunięto szereg unreferenced zmiennych z próbki app.
• Nagłówki są teraz kodowane, jeśli zawierają znaki ASCII.
• Fixed a bug w getLine, dzięki Lev Evert na znajdywanie tego jednego.
• Wydali charset wartość członka klasy wiadomości zamiast połączenia klasy
• Próbka app teraz w pełni popiera określająca charset wiadomości
• Dodano AddMultipleAttachments metodę CSMTPMessage
• Osprzęt może być teraz skopiowane do siebie za pomocą nowych metod CSMTPAttachment
• Klasa wiadomości zawiera teraz kopie załączników zamiast odnośniki do nich
• Próbka app pozwala teraz na kilka załączników do dodania
• Usunięto niepotrzebne wołają w QuotedPrintableEncode
• Dodano flagę mima do CSMTPMessage klasy która pozwala zdecydować, czy wiadomość powinna być wysłana jako MIM. Zauważ, że jeśli masz przystawki, następnie mima to zakłada.
• CSMTPAttachment klasa ma teraz stać się CSMTPBodyPart wyprzedzając pełne wsparcie dla MIME i MHTML obsługa poczty e-mail
• Zaktualizowano informację o prawach autorskich w kod źródłowy i dokumentacja
• Fixed a bug w GetHeader związane _tsetlocale usage. Dzięki Seana Mckinnona za znajdywanie tego problemu.
• Fixed a bug w SendLines podczas wysyłania małych załączników. Dzięki Deng wicedyrektor oddziału radioterapii Akademii Tao na znajdywanie tego problemu.
• Usunąć potrzebę SendLines działa zupełnie.
• Teraz pełną obsługę poczty e-mail w formacie HTML (aka MHTML)
V2.11 (17 czerwiec 2001)
• Fixed a bug w CSMTPMessage::HeaderEncode jeżeli pomieszczenia te nie są właściwie interpretowane. Dzięki Jim Alberico na znajdywanie tego.
• Stałe 2 problemy z ReadResponse obydwa miały do czynienia z multi-line odpowiedzi. Dzięki Chris Hanson tej aktualizacji.
V2.12 (25 czerwca 2001)
• Teraz kod linków w Winsock i RPCRT40 automatycznie. Unika się w ten sposób kodu klienta uwzględniając aby określić go w swoich ustawieniach linkera. Dzięki Malte i Phillip na znajdywanie tego problemu.
• Zaktualizowany kod przykładowy w dokumentacji. Dzięki Phillip na znajdywanie tego.
• Poprawiono kod w CSMTPBodyPart::SetText w celu zapewnienia linie są odpowiednio zapakowane. Dzięki Thomas Moser do tej poprawki.
V2.13 (1 lipca 2001)
• QuotedPrintableEncode zmodyfikowana, aby uniknąć konieczności wprowadzania kodu w nieskończoną pętlę ze względu na długie słowo tj. większych niż SMTP_MAXLINE, w tym wypadku, słowo jest złamany. Dzięki Manuel Gustavo Saraiva dla tej poprawki.
• Stwarzają nowe chronionych zmienną w CSMTPBodyPart o nazwie m_bQuotedPrintable aby ominąć QuotedPrintableEncode funkcji w przypadkach, że nie chcemy tego rodzaju korekty. Ponownie dzięki Manuel Gustavo Saraiva dla tej poprawki.
V2.14 (15 lipca 2001)
• Udoskonalona obsługa błędów w funkcji CSMTPMessage::AddMultipleAttachments. Dodatkowo wartość zwrócona została zmieniona z BOOL do int.
V2,15 (13 sierpnia 2001)
• Fixed a bug w QuotedPrintableEncode które było zawijanie kodowanie znaków w wielu liniach. Dzięki Roy on na znajdywanie tego.
• Zapewniła “SendMessage” metoda, która wysyła wiadomości e-mail bezpośrednio z dysku. Pozwala to na zbudowanie własnego e-maili i korzystania z klasy tylko do wysyłania. Funkcja ta ma również tę korzyść, że skutecznie używa pamięci i raportów postępu.
• Udzielała wsparcia dla postępu ogłoszenia i szumów poprzez “OnSendProgress” metod wirtualnych.
V2.16 (29 września 2001)
• Fixed a bug w ReadResponse zaistniałymi podczas odłączone poprzez Dial-Up Networking, gdy połączenie jest aktywne. Pierwotnie był wytropić w moim POP3 klasy.
• Stały problem w CSMTPBodyPart::GetHeader , który zawsze był tym “przytoczona-printable”, nawet przy
M_bQuotedPrintable dla tej części ciała było fałszywe. Dzięki “jason” dla znajdywanie tego.
Eric Fontana podjął CPJNSMTPConnection klasy i opracowała wersję COM, który posiada następujące cechy:
• W proc dll interfejs COM
• IDispatch obsługuje więc mogą być wywoływane z ASP, VBScript, JScript, etc.
Kod można pobrać here. Chciałbym prosić, aby przesyłać wszelkie zapytania odnoszące się do tego kodu, aby poczuł jak jestem tylko hosting kodeks jako przysługę dla niego.
V2.17 (12 października 2001)
• Stałym problemem gdzie GetBody było zgłoszenie, jak wielkość 1 większy niż należało. Dzięki “c f” dla zauważając ten problem.
• Fixed a bug w zapisie zdań podczas połączenia przez gniazdo nie może zostać wykonana.
• Próbka app wyświetla teraz filtr “Wszystkie pliki” przy wyborze osprzętu do wysłania.
• Stały problem z wysyłaniem 0 bajt osprzętu. Dzięki Deng wicedyrektor oddziału radioterapii Akademii Tao na znajdywanie tego problemu.
3 grudnia 2001 r.
• Ujęta w prawa autorskie dotyczące korzystania z klasy w listowymi.
V2.18 (11 styczeń 2002)
• Teraz zawiera metodę służącą do wysyłania wiadomości bezpośrednio z pamięci. Dzięki Tomowi Allebrandi za tę sugestię.
• Zmiana nazwy funkcji “IsReadible” aby być “IsReadable”. Nigdy nie byłem bardzo dobry w angielskim!.
• Fixed a bug w CSMTPBodyPart::QuotedPrintableEncode. Jeśli linia była dokładnie 76 znaków plus \r\n wytwarzał on niepoprawny soft wiersza “\r=\r\n\n”. Dzięki Gerald Egert na znajdywanie tego problemu.
13 stycznia 2002 r.
• Drobna aktualizacja do próbki app usuwającą błąd w przeglądanie załączników, podstawowych klas nie zmieniły się.
V2.19 (29 lipiec 2002)
• Stałe naruszenie praw dostępu w CSMTPBodyPart::QuotedPrintableEncode. Dzięki Fergus Gallagher na znajdywanie tego problemu.
• Stałym problemem gdzie w bardzo rzadkich przypadkach, funkcja QuotedPrintableEncode wytwarza pojedynczą kropką w linii, przy wstawianiu Znaku “=” w celu uniknięcia mail server’s maxline limit. Mam wstawić wywołanie FixSingleDot po wyzywania QuotedPrintableEncode funkcji w GetBody. Dzięki Andreas Kappler na znajdywanie tego problemu.
• Rozwiązano problem w CSMTPBodyPart::GetHeader który zapewnia wszystkich klientów poczty może prawidłowo obsługiwać części ciała oraz załączniki, które mają nazwę pliku ze spacjami. Dzięki Andreas Kappler na znajdywanie tego problemu.
• Kodowanie QP jest teraz używana tylko wtedy, gdy podajesz mima. Ten naprawia bug deklarowanego przez Davida Terracino.
• Teraz usunięte nieużywane “API Reference” link w pliku HTML z obsługą kod.
V2.20 (10 sierpnia 2002)
• Rozwiązano kilka plików niewychwyconych wyjątków w CSMTPBodyPart::GetBody CSMTPMessage,::SaveToDisk i CPJNSMTPConnection::SendMessage. Dzięki John Allan Miller za zgłoszenie tego problemu.
• Na CPJNSMTPConnection::SendMessage wersja metody, która wysyła plik bezpośrednio z dysku, teraz kończy się niepowodzeniem, jeśli plik jest pusty.
• Udoskonalone próbki app wyświetlanie kursora oczekiwania podczas wiadomości ze plik jest przesyłany.
• Udoskonalone próbki app, ostrzegając użytkownika czy ustawienia poczty brakuje, a następnie wychowywaniem w oknie konfiguracji.
V2.21 (20 września 2002)
• Stałym problemem gdzie kod “Coder.EncodedMessage” nie została wprawdzie osiemnastowieczna ASCII string do UNICODE string w zaproszeniu do CString::Format. Miało to miejsce, kiedy wysyła nazwę użytkownika i hasło dla “AUTH LOGIN” Wsparcie oprócz wysyłania “username digest” dla “AUTH CRAM-MD5”. Dzięki Serhieja Pawłow za zgłoszenie tego problemu.
• Usunięto szereg zaproszeń do CString::format i zamiast zastąpić ciąg literałów CString budowniczymi 999.
V2,22 (3 października 2002)
• Quoted Printable kodowanie nie działa prawidłowo w trybie Unicode. (nieprawidłowa konwersja z TCHAR do bajtu). Dzięki Serhieja Pawłow za zgłoszenie tego problemu.
• Kodowanie tematu nie działa prawidłowo w trybie Unicode. (nieprawidłowa konwersja z TCHAR do bajtu). Dzięki Serhieja Pawłow za zgłoszenie tego problemu.
• Nie zabrało wstawienie “charset” tag w root krztałka for zwykłe wiadomości tekstowe (obecnie obejmuje on “charset” do zwykłego tekstu wiadomości zbyt). Dzięki Serhieja Pawłow za zgłoszenie tego problemu.
V2.23 (4 października 2002)
• Rozwiązano problem gdzie nagłówek / korpus separatora nie były wysyłane prawidłowo na maile z załącznikami lub gdy komunikat jest kodowanie MIME. Dzięki Serhieja Pawłow za zgłoszenie tego problemu.
• Fixed a bug w QuotedPrintableEncode HeaderEncode i co było przyczyną błędów. Dzięki Antonio Maiorano za zgłoszenie tego problemu.
• Rozwiązano problem z dodatkową rubrykę separatora są przesyłane pomiędzy hederem i ciało e-mailów. Była to jedynie w abstrakcyjnym klientów poczty w przypadku mime wiadomości bez załączników został wysłany.
Przeciwko poniższym przykładzie (11 grudnia 2002)
• Przegląd wszystkich pierwiastków śladowych stwierdzeń pod kątem poprawności działania
• Pod warunkiem odbycia wirtualnej Wyrażenie OnError metoda która dostaje tzw. za informację o błędzie.
V2.25 (7 lutego 2003)
• Dodanie “BOOL bGracefully” argument, aby odłączyć, tak, że gdy aplikacja anuluje wysyłanie wiadomości, możesz przekazać fałsz i zamknąć gniazdo bez prawidłowo kończąca konwersację SMTP. Dzięki “nabocorp” za to miły dodatek.
• Czy sprawdzenie pisowni dokumentacja .
9 lutego 2003 r.
• Zaktualizowano przykładowy app do wyświetlania proste okno dialogowe postępu przy wysyłaniu wiadomości z dysku (nie za pomocą opcji “Send Direct”). Zapewnia to próbka tego, w jaki sposób można zaimplementować odwoływalne wysyłać wiadomości z technicznego wsparcia. Dzięki “nabocorp” dla sugerujących ten dodatek do próbki.
V2.26 (19 marca 2003)
• Oprócz tego egzemplarza budowniczymi i operator= CSMTPMessage do klasy. Dzięki Aleksiej Wasiliew – zostało skazanych za tę sugestię.
V2.27 (13 kwietnia 2003)
• Fixed a bug w obsłudze EHLO odpowiedzi. Dzięki “Senior” za bug report i fix.
V2.28 (17 kwietnia 2003)
• Poprawiona CSMTPAddress konstruktora, aby przetworzyć na adres e-mail przyjazna nazwa zamiast zakładać, że jest to adres e-mail.
• Przerobione składnia CSMTPMessage::ParseMultipleRecipients metody. Obecnie również wewnętrznie funkcja ta wykorzystuje nowy CSMTPAddress konstruktora.
V2.29 (19 kwietnia 2003)
• Fixed a bug w CSMTPAddress konstruktora, gdzie byłem myleniu przyjazna nazwa w “<>”, separatory, kiedy należało ją adres email.
V2.30 (4 maja 2003)
• Rozwiązano problem, gdzie klasy nie konwertować treści wiadomości oraz podlegające kodowaniu chciał, lecz raczej zmiany kodowania poczty e-mail w nagłówku. Od czasu wydania obsługujący kilka języków jest mozolnym jedna Zdecydowałam, że możemy osiąść na wysłanie wszystkich CPJNSMTPConnection emaile w formacie UTF-8. Ucieszyły mnie dodałem kilka funkcji konwersji do klasy, która – w tym momencie – zawsze przekształca ciało i tematu wiadomości e-mail do UTF-8. Wielki dzięki possible itamar Curbel dla tego wspaniałego dodatku.
• Przesunięta kodu i próby app do VC 6.
V2.31 (5 maja 2003)
• Przerobione sposobem UTF8 kodowanie jest już gotowe. Co powinieneś zrobić, jeśli chcesz korzystać z kodowania UTF-8 jest ustawione charset “UTF-8” i użyć albo QP lub base 64 kodowanie.
• Przerobione automatyczne kodowanie tematu aby użyć ustawienia jak wydobyte z cebulkami SMTP część ciała
• Jedynie prawidłowe nagłówki według MIMA RFC są teraz kodowane.
• Kodowanie QP jest mechanizm kodowania teraz zawsze wykorzystywany do nagłówków.
• Nagłówki są teraz kodowane tylko jeśli muszą być kodowane.
V2.32 (12 maj 2003)
• Fixed a bug, gdzie X-Mailer heder został wysłany błędnie. Dzięki Paolo Vernazza za zgłoszenie tego problemu.
• Dodanie X-Mailer hedera jest teraz opcjonalny. Dodatkowo próbki app teraz nie wysyła X-Mailer hedera.
• Próbka app teraz nie wysyła zwrotny hedera.
18 sierpnia 2003 r.
• Christian Andersen podjął CPJNSMTPConnection klasy i opracowała wersja działa w systemie Windows CE. Kod można pobrać here. Chciałbym prosić, aby przesyłać wszelkie zapytania odnoszące się do tego kodu, aby chrześcijański jak jestem tylko hosting kodeks jako przysługę dla niego.
V2.33 (18 sierpnia 2003)
• Zmodyfikowały wartość zwrotna z ConnectToInternet metody. Zamiast niego jest logiczne, że jest teraz enum. Dzięki temu kod klienta rozróżnić dwa warunki, że nie mogłem wcześniej, a mianowicie, gdy połączenie z internetem już istniały, lub gdy nowe połączenie (prawdopodobnie z połączenia dial-up został wykonany). Dzięki temu kod klienta, aby następnie odłączyć jeśli nowego połączenia nie była potrzebna. Dzięki Pete Royowi Arendsowi z tego ładny dodatek.
19 sierpnia 2003 r.
• Zaktualizowano przykładowy app w celu uniknięcia wyciek pamięci. Okazuje się, że konieczne było robienie z porządkującą w przedwojennej skompilowany hedera. Nigdy nie byłem zbyt miły mojemu sercu STL i to potwierdziło moje uprzedzenia. Dzięki Damian Willis za zgłoszenie tego problemu.
V2.34 (15 października 2003)
• Przerobione na CPJNSMTPConnection::ReadResponse metody do wykorzystania limitu czasu przewidzianego przez IsReadable raczej niż dzwonienie do snu. Dzięki Clarke poczytali za zgłoszenie tego problemu.
V2,35 (3 listopada 2003)
• Uproszczony kod w CPJNSMTPConnection::ReadResponse. Dzięki Clarke poczytali za zgłoszenie tego problemu.
V2.36 (3 grudnia 2003)
• Wprowadzić kod, który sprawdza Login reakcje, które zawierają “username” i “Password” (uwzględniana. Dzięki Zhang xiao Pan za zgłoszenie tego problemu.
V2.37 (11 grudnia 2003)
• To wyznaczyło unreferrenced zmiennej w CPJNSMTPConnection::Wyrażenie OnError deklarowanego przez VC.Net 2003
• DEBUG_Nowe makro jest teraz używany tylko w VC 6 a nie VC 7 lub VC 7.1. W ten sposób unika się problemu związanego z tymi kompilatorami, gdzie istnieje konflikt pomiędzy nim a STL pliki nagłówkowe. Dzięki Alex Evans za zgłoszenie tego problemu.
V2.38 (31 stycznia 2004)
• Fixed a bug w CSMTPBodyPart::GetBody gdzie rozmiar części ciała było nieprawidłowe obliczenie wielkości, jeżeli rozmiar kodowanych był dokładną wielokrotność liczby 76. Dzięki Kurt Emanuelson i Enea Mansutti za zgłoszenie tego problemu.
V2.39 (7 lutego 2004)
• Fixed a bug w CSMTPBodyPart::SetText gdzie kod wstąpią nieskończonej pętli w funkcję Zastąp. Do tej pory został zastąpiony CString::Wymienić. To teraz, oznacza to, że klasa nie będzie teraz skompilować na VC 5. Dzięki Johannes Philipp Grohs za zgłoszenie tego problemu.
• Rozwiązano kilka ostrzeżeń, kiedy kod jest kompilowany z VC.Net 2003. Dzięki Edward Livingston za zgłoszenie tego problemu.
V2,40 (18 lutego 2004)
• Teraz można opcjonalnie ustawić priorytet e-mail bvr przez zmienną CSMTPMessage::m_Priority. Dzięki Edward Livingston dla sugerujących ten dodatek.
V2.41 (4 marca 2004)
• Aby uniknąć konfliktów z ATL serwer klasy o tej samej nazwie, mianowicie “CSMTPConnection”, klasy nazywa się obecnie “CPJNSMTPConnection”. Aby zapewnić łatwe unowocześnianie kodeksu, “CSMTPConnection” jest teraz zdefiniowana “CPJSMTPConnection” jeżeli kod wykrył, że ATL SMTP serwera klasy nie jest wliczony w cenę. Dzięki Ken Jones za zgłoszenie tego problemu.
V2.42 (13 marca 2004)
• Stałym problemem gdzie CSMTPBodyPart::m_dwMaxAttachmentSize wartości nie był kopiowany w CSMTPBodyPart::operator= metody. Dzięki Gerald Egert za zgłoszenie tego problemu i jego rozwiązanie.
V2,43 (5 czerwca 2004)
• Fixed a bug w CSMTPConnection::ReadResponse, gdzie błędne parametry były null terminated. Dzięki “caowen” przez tę aktualizację.
• Zaktualizowano CSMTPConnection::ReadResponse funkcji do obsługi multiline odpowiedzi we wszystkich przypadkach. Dzięki Thomasowi Liebethal za zgłoszenie tego problemu.
V2.44 (7.06.2004)
• Stałe potencjalne przepełnienie bufora w CSMTPConnection::ReadResponse przy niektórych wieloliniowe odpowiedzi
V od2,45 do (30 września 2004)
• Stałe a analizowania problemu w CPJNSMTPConnection::ReadResponse kiedy wieloliniowe odpowiedzi są zczytywane jak wiele pakietów. Dzięki Mark Smith za zgłoszenie tego problemu.
• Przerobione kod, który obsługuje różne mechanizmy uwierzytelniania ułatwiające prawidłowe warunki. Jaka była nazywana “AUTH LOGIN PLAIN” obsługują teraz bardziej prawidłowo posługuje się terminem “AUTH PLAIN”. Nazwy funkcji i typy wyliczeniowe są teraz również zostały przerobione.
• Zrobil przeglądu próbki app kodu dostarczonego z klasy tak, że nazwy modułów, projekty, exe itp. teraz “PJNSMTPApp”. Również przerobione nazwisko jakiegoś pomocnika klasy, jak również nazwę modułu, który obsługuje główne klasy.
• Przerobione CPJNSMTPConnection::AuthLoginPlain (zwanego teraz AuthPlain) aby prawidłowo obsługiwał w przypadku nieprawidłowej odpowiedzi jest odbierane, gdy oczekiwano nazwa użytkownika: odpowiedź. Dzięki Mark Smith za zgłoszenie tego problemu.
V2.46 (23 grudnia 2004)
• “Name” w polu nagłówki Content-Type jest teraz podawana podobnie jak w polu Nazwa pliku. Dzięki Mark Smith za zgłoszenie tego problemu w połączeniu z klienta pocztowego Eudora.
V2,47 (24 stycznia 2005).
• Wszystkie klasy teraz wykorzystuje wyjątki, aby wskazać błędy. Oznacza to, że cały obszar obsługi błędów w kodzie o wiele prostsze. Na przykład Wyrażenie OnError mechanizm znikła razem z wszystkimi string literałowego w kodeksie. Rzeczywisty kod sam w sobie jest o wiele prostsze. Należy dokładnie przejrzeć swój kod jako partia powrót wartości z metod (zwłaszcza CPJNSMTPConnection) są już nieważne i będzie zamieszczał CSMTPException’s. Dzięki Mark Smith do monitowania tej aktualizacji.
• Ogólne tidy up kodeksu poniższe testy nowy wyjątek na podstawie kodu.
19 lutego 2005 r.
• Zaktualizowane dane dotyczące wykorzystania części dokumentacji, aby opisać co jest potrzebne do zintegrowania tego kodu w aplikacjach. Dzięki Matthew Tompkins do monitowania tej aktualizacji.
V2.48 (7 marca 2005).
• Dodanie PJNSMTP_Ext_CLASS zdefiniować do klas aby umożliwić klas można łatwo włączyć do rozszerzenia plików .DLL. Dzięki Arnaud sztambuchu Aleksandry dla sugerujących ten dodatek.
• Teraz wsparcie uwierzytelniania NTLM. Dzięki Arnaud sztambuchu Aleksandry dla tego wspaniałego dodatku. Uwierzytelnianie NTLM jest zapewniana przez nową wielorazowych klasy o nazwie “CNTLMClientAuth” w PJNNTLMAuth.cpp/h”.
• Fixed a bug w próbce app w wytrwałości ustawienia uwierzytelniania. Dzięki Arnaud sztambuchu Aleksandry za zgłoszenie tego problemu.
V2,49 (26 marca 2005).
• Stałe kompilacji problemy z kodem, gdy życie zgodne w pętli for zakres opracowania ustawienie jest używane w Visual Studio .NET 2003. Dzięki Aleksiej Kuznetsov za zgłoszenie tego problemu.
• Stałe kompilacji problemy kiedy kod jest kompilowany za pomocą wykryć 64-bitowych zagadnienia przenośności ustawienie w Visual Studio .NET 2003.
V2.50 (18 kwietnia 2005).
• Dodanie prostego jest wůŕczony() funkcja inline z porządną CPop3Związku klasy. Dzięki Aleksiej Kuznetsov do monitowania ten dodatek.
• Dodanie MXLookup funkcję, która umożliwia wygodne przeszukiwanie DNS rekordów MX (adresy IP serwery SMTP poczty e-mail. do określonego hosta domeny). Wewnętrznie ta nowa funkcja wykorzystuje nowe funkcje DNS, które są dostarczane z zainstalowanym systemem Windows 2000 lub nowszym. Aby upewnić się, że kod będzie działać poprawnie w starszych wersjach Windows funkcja wskażniki wymagane funkcje są skonstruowane przy starcie za pomocą GetProcAddress. Możesz użyć tej funkcji, aby poznać adres IP serwera pocztowego odpowiedzialnego dla określonej domeny. Pozwala to na dostarczanie wiadomości e-mail bezpośrednio do domeny zamiast przez trzecią stronę serwera poczty. Dzięki Hans Dietrich dla sugerujących ten sympatyczny dodatek.
V2.51 (23 kwietnia 2005).
• Kod używa obecnie MS Crypto API wykonania MD5, HMAC algorytm zamiast niestandardowego kodu oparte na RSA MD5 kod. Oznacza to, że nie ma żadnej potrzeby RSA MD5.cpp, MD5.h i globu-md5.h, które mają być zawarte w aplikacji klienckich. Ponadto kompilacja konfiguracje z wyłączeniem RSA MD5 kod został usunięty z próby app. Nowe klasy, aby wykonać mieszającego MD5 zawarte są w PJNMD5.h i są na tyle ogólne, które mają być zawarte w aplikacji klienckich na swoich własnych prawach.
V2.52 (1 maja 2005).
• Korzysta teraz z porządną gniazd CWSocket opakowujących klasy.
• Dodano wsparcie dla połączenia przez Socks4 i Socks5 i HTTP proxy)
• Ostatni parametr, który chcesz podłączyć został usunięty i jest konfigurowana poprzez paski / dzięki Titanowi parę Get/SetBoundAddress.
• CSMTPException klasy nazywa się obecnie CPJNSMTPException.
• Klasa korzysta teraz z Base64 klasy zgodnie z CWSocket. Oznacza to, że moduły Base64Coder.cpp/h nie są już rozprowadzane lub wymagane i powinny zostać usunięte z wszystkich projektów, które wykorzystywały zaktualizowaną SMTP klas.
• Fixed a bug w SaveToDisk metoda, w której istniejące pliki nie byly skracane przed zapisaniem wiadomości.
• Wszystkie połączenia do alokowania pamięci sterty teraz generować CPJNSMTPException jeśli przystosowanie nie powiedzie się.
• Dodanie MXLookupAvailable(), tak że kod klienta może wiedzieć a priori jeśli DNS lookups MX nie są obsługiwane.
• Próbka app teraz pozwala na używanie MXLookup metody określenia mail server oparty na pierwszy adres e-mail należy podać w polu Do.
V2.53 (3 maja 2005).
• Zaktualizowano sekcję wykorzystania do opisu konieczność posiadania zestawu SDK platformy zainstalowane i skonfigurowane.
• Rozwiązano kilka ostrzeżeń, jeśli kod jest wkompilowany w Visual Studio .NET 2003. Dzięki Nigel Delaforce zgłaszania takich problemów.
18 maja 2005 r.
• Kara ostrzeżenia kompilatora w CPJNMD5Hash klasy przy skompilowany przy użyciu Visual Studio .NET 2003. Dzięki Aleksiej Kuznetsov za zgłoszenie tego problemu.
V2.54 (24 lipca 2005).
• Teraz obejmuje wsparcie dla analizowania “(…)” w komentarzach adresy. Dzięki Aleksiej Kuznetsov dla tego wspaniałego dodatku.
• Rozwiązano problem gdzie mail hedera może zawierać “Content-Transfer-Encoding” hedera. Ten nagłówek powinien być stosowany jedynie do nagłówków MIME części ciała zamiast nagłówka poczty. Dzięki Jeroen van der Laarse, Terence Dwyer i price Bostjan Erzen za zgłoszenie tego problemu i wymagane poprawki.
• Teraz dzwoniąc zarówno AddTextBody i AddHTMLBody obu ustaw główną część ciała MIME typu multipart/mixed. Poprzednio kod komentarze powiedział jedną rzecz, a nie inny (odłóż go na “multipart/related”). Dzięki price Bostjan Erzen za zgłoszenie tego problemu.
V2.55 (14 sierpnia 2005)
• Drobna aktualizacja w celu uwzględnienia uwag obok różnych miejsc w kodzie, aby poinformować użytkowników co zrobić gdy nagrzeją się błędy kompilacji w wyniku kompilowania kodu bez Platform SDK instalowane. Dzięki Gudjon Adalsteinsson do monitowania tej aktualizacji.
• Rozwiązano problem, kiedy kod wywołania funkcji DnsQuery kiedy kod jest kompilowany do Unicode. Było to wynikiem błąd dokumentacji w Platform SDK, która źle mówi, że DnsQuery_W przygląda się ASCII string kiedy faktycznie zarastają ciąg Unicode. Dzięki John Oustalet III za zgłoszenie tego problemu.
V2.56 (5 września 2005).
• Rozwiązano problem w metodzie MXLookup gdzie została pamięć nie są prawidłowo odblokowane w zaproszeniu do DnsRecordListFree. Dzięki Raimunda Mettendorf zgłoszenie tego Bugu.
• Rozwiązano problem gdzie linie, które posiadały pojedyńczy dot czyli “.” nie dotarło wysłane prawidłowo. Dzięki Raimunda Mettendorf za zgłoszenie tego problemu.
• Usunięto zacheta do FixSingleDot od metody SetText jak jest ona aktualizowana przy starcie jak wiadomość została wysłana. Był to uciążliwy dla ustalania z góry dot problem gdy kodowanie MIME wiadomości były wysyłane.
• Wskaźnik funkcji do CompleteAuthToken jest teraz zbudowana przy starcie. Oznacza to, że protokół NTLM uwierzytelnienie klienta będą działać poprawnie na Win9x jak używane przez klasę CPJNSMTPConnection oraz wszelkie inne klasy zamiast wychowywaniem “Nie udało się załadować z brakującym eksportem…” wiadomość z Windows ładowacza. Jeśli chcesz usunąć NTLM wsparcie od CPJNSMTPConnection następnie możesz kontynuować używanie CPJNSMTP_NONTLM preprocesor zdefiniować. Dzięki “Lior” za zgłoszenie tego problemu.
• Rozwiązano problem gdzie FixSingleDot funkcja została poproszona o wypowiedzenie podczas zapisywanie wiadomości na dysku. To było błędne i nie powinno być wykonywane tylko, gdy faktycznie wysyłanie poczty SMTP.
V2.57 (7 września 2005).
• Stała jeszcze jedno dot wydania, to czas w którym ciało składa się z zaledwie jednym punktem. Dzięki Raimunda Mettendorf za zgłoszenie tego problemu.
• Stałe a typo w paski CPJNSMTPConnection funkcja::GetBoundAddress który został błędnie nazwany CPJNSMTPConnection::SetBoundAddress. Dzięki Kolar Pavel zgłoszenie tego.
V2.58 (29 września 2005).
• Zdjąć cięgło do przestrzeni32.lib, ponieważ wszystkie funkcje interfejsu SSPI są teraz budowane przy starcie za pomocą GetProcAddress. Dzięki Emira Kapic tej aktualizacji.
• MD5 Format teraz metoda umożliwia określenie wielkimi lub małymi literami, string dla skrótu. Jest to konieczne ponieważ CRAM-MD5 mechanizm uwierzytelniania wymaga mał MD5 hash. Dzięki Jian Peng za zgłoszenie tego problemu.
• 250 lub 251 jest teraz uważana za udane odpowiedzi na polecenia RCPT TO. Dzięki Jian Peng za zgłoszenie tego problemu.
• Stałe potencjalne wycieki pamięci w implementacji uwierzytelniania NTLM w kodeksie było wrzucenie wyjątki które kod autoryzacji nie był przewidywany do klamki.
V2.59 (2 października 2005).
• MXLookup funkcjonalność klasy mogą teraz zostać wykluczone przez preprocesor zdefiniuj “CPJNSMTP_NOMXLOOKUP”. Dzięki Thiago Luiz do monitowania tej aktualizacji.
• Próbka app teraz nie zawracaj pytające o nazwę użytkownika i hasło, jeśli typ uwierzytelniania NTLM. Dzięki Emira Kapic na znajdywanie tego problemu.
• Dokumentacja została zaktualizowana, aby odnieść się do problemów związanych z uwierzytelnianiem NTLM i SSPI. Dzięki Emira Kapic do monitowania tej aktualizacji.
• Stała aktualizacja błąd zrobił dla poprzednich wersji, która nieprawidłowo obsługiwane dodatkowe 251 polecenie dla “mail”, zamiast prawidłowo “RCPT TO”. Dzięki Jian Peng za zgłoszenie tego problemu.
V2.60 (7 października 2005).
• Rozwiązano problem gdzie załączonych plików zostały niewłaściwie tym wartość charset w ich nagłówkach. Dzięki zastosowaniu kół Rokstad za zgłoszenie tego problemu.
V2.61 (16 listopada 2005).
• Teraz zawiera pełne wsparcie dla połączenia za pomocą protokołu SSL. Na przykład wysyłając mail bvr przez Gmail przy użyciu serwera “smtp.gmail.com” na porcie 465. Dzięki Vladimir Sukhoy za dostarczenie to bardzo miły dodatek (używając oczywiście porządną zwierzątko OpenSSL na autobusach!).
9 grudnia 2005 r.
• Zaktualizowane dane dotyczące wykorzystania części dokumentacji, w jaki sposób właściwie wyklucza funkcjonalność SSL z klasy. Dzięki Berni Slootbeek do monitowania tej aktualizacji.
• Zaktualizowano sekcję wykorzystania dokumentacji o preferowanym sposobem formatowania tagi CID MHTML odpisywanie. Dzięki zastosowaniu kół Rokstad do monitowania tej aktualizacji.
V2.62 (29 czerwca 2006).
• Zaktualizowana dokumentacja do wykorzystania w takim samym stylu jak witryny www.
• Połączona funkcjonalność _PJNNTLMCLIENTAUTH_klasy danych do głównego CNTLMClientAuth klasy.
• Teraz kod wykorzystuje nowy C++ styl budzi raczej staroświecki C odlewy w miarę potrzeby.
• Zintegrowana funkcja ThrowPJNSMTPException CPJNSMTPConnection do klasy i przemianowała na ThrowPJNSMTPException
• Połączona funkcjonalność _PJNSMTP_klasy danych do głównego CPJNSMTPConnection klasy.
• Zaktualizowany kod, aby oczyścić kompilować na VC 2005
• Zaktualizowane szczegóły dotyczące praw autorskich.
• Usunięto zbędne kontrole o niepowodzeniu przydzielenia via nowy gdyż w MFC tych będzie zamieszczał CMemoryExceptions!.
• Zoptymalizowane CPJNSMTPException konstruktorze kodu
V2.63 (14 lipca 2006).
• Fixed a bug CPJNSMTPConnection w przypadku, gdy zebrane w trybie UNICODE, uwierzytelnianie NTLM nie udawała. Dzięki Wouter Demuynck za dostarczenie Poprawka usuwająca ten bug.
• Przerobione na CPJNSMTPConnection::NTLMAuthPhase(*) metody do rozkręcenia CPJNSMTPException standardowe wyjątki jeśli istnieją jakiekolwiek problemy wykryte. Można to zrobić teraz, że CNTLMClientAuth klasa jest odporne na wyjątki wrzuceniu.
• Zaktualizowano CNTLMClientAuth użycie nowszych C++ styl rzuca.
• Wydali CNTLMClientAuth::NTLMAuthenticate funkcja “wyjątek” bezpieczne, czyli klas pochodnych są wolne do rozkręcenia wyjątki w ich implementacje NTLMAuthPhase1, NTLMAuthPhase2 lub NTLMAuthPhase3 i CNTLMClientAuth klasa będzie odpowiednio sprzątają swoje zasoby. Osiągane jest to poprzez zmuszenie CredHandle SecHandle i wartości państwa zmiennych klasy.
• Zastępuje wszystkie połączenia do ZeroMemory z memset.
• Teraz społeczeństwo NTLMAuthenticate funkcja pozwala na podanie nazwy użytkownika i hasła szczypiec do zrobienia uwierzytelnianie NTLM za pomocą wybranego konta zamiast listów uwierzytelniających bieżącego użytkownika. Jeżeli użytkownik zostawi te wartości jako NULL, otrzymasz starych zachowań, które jest wykorzystanie aktualnego poświadczenia użytkownika. Dzięki Wouter Demuynck za to bardzo miły dodatek.
17 lipca 2006
• Zaktualizowany kod w próbce Share, aby umożliwić > 30000 znaków, które mają być wprowadzone do pola edycji, który zawiera treść wiadomości. Osiągane jest to poprzez podłożenie zacheta do CEdit::SetLimitText w OnInitDialog metodą dialogu. Dzięki Thomasowi nikogo za zgłoszenie tego problemu.
V2,64 (13 października 2006).
• Teraz kod inicjujący Domain name wartość CNTLMClientAuth::NTLMAuthenticate na pusty string zamiast NULL string. Unika się w ten sposób uwierzytelniania NTLM problemy podczas uwierzytelniania jako użytkownik domeny z niektórych serwerów poczty elektronicznej. Dzięki Wouter Demuynck za zgłoszenie tego problemu.
• Rozwiązano problem w odłączyć gdzie jeżeli zacheta do ReadCommandResponse zwrócił wyjątek, nie mielibyśmy zamknąć gniazdo lub set m_bConnected fałsz. Kod został zaktualizowany w celu zapewnienia te są już gotowe. To właśnie zapewnia łagodną debugowanie. Dzięki Aleksiej Kuznetsov za zgłoszenie tego problemu.
• CPJNSMTPException::GetErrorMessage korzysta teraz z user default locale dla błąd formatowania tekstu.
• Ustalone pewne problemy przy porządkowaniu nagłówka i części ciała w CPJNSMTPConnection::SendBodyPart i CPJNSMTPMessage::WriteToDisk. Dzięki Xiao-li Ling za zgłoszenie tego problemu.
V grubość2,65 (11 listopada 2006).
• Cofnęli CPJNSMTPException::GetErrorMessage do zastosowania system default locale. Jest to zgodne z tym, jak MFC czy własnej obsługi błędów.
• Teraz obejmuje kompleksowe wsparcie dla DSN (stan dostarczania powiadomień), jak określono w dokumencie RFC 3461. Dzięki Riccardo Raccuglia do monitowania tej aktualizacji.
• CPJNSMTPBodyPart::GetBody i CPJNSMTPConnection::SendMessage(const CString& sMessageOnFile… teraz nie otwiera plików dysku do wyłącznego dostępu do odczytu, co oznacza, że inne aplikacje można odczytać z pliku. Dzięki Wouter Demuynck za zgłoszenie tego problemu.
• Rozwiązano problem w CPJNSMTPConnection::SendMessage(const CString& sMessageOnFile… gdzie w pewnych okolicznościach moglibyśmy skończyć usuwanie lokalnych pSendBuf “bufor” dwukrotnie. Dzięki Izidor Rozman za zgłoszenie tego problemu.
V2.66 (30 marca 2007).
• Fixed a bug w CPJNSMTPConnection::SetHeloHostname gdzie stos unitialized variable potencjalnie mógłby być użyty. Dzięki Anthonego Kowalskiego za zgłoszenie tego Bugu.
• Zaktualizowane szczegóły dotyczące praw autorskich.
V2.67 (1 sierpnia 2007).
• AuthCramMD5, ConnectESMTP, ConnectSMTP, AuthLogin i AuthPlain metody zostały już wykonane są wirtualne.
• Obecnie obejmuje obsługę automatycznego protokołu uwierzytelniania. Pozwoli to wykryć jakie metody uwierzytelniania serwera SMTP obsługuje i używa “najbezpieczniejsza” dostępna metoda. Jeżeli użytkownik nie zgadza się z kolejnością, w jakiej wybranego protokołu, a wirtualne funkcję zwaną “ChooseAuthenticationMethod” otoczono. Dzięki “zhangbo” za dostarczenie to bardzo miły dodatek do kodu.
• Usunięto definicja do nieistniejącej już “AuthNTLM” metody.
V2.70 (13 listopada 2007).
• Major update do kod do użycia VC2005 swoistych cech. Ta wersja kodu i wzwyż będą obsługiwane tylko na VC 2005 lub później. Dzięki Andrey Babushkin do monitowania tej aktualizacji. Proszę zauważyć, że nie nastąpiło zerwanie zmiany nazwy i rozmieszczenie różnych metod i zmiennych. Należy starannie analizować próbki app udostępnioną do pobrania jak również kod klienta wymagane aktualizacje, które trzeba będzie ponieść.
• Próbka app w download jest teraz build dla Unicode i łącza dynamicznie do MFC. On także łącza dynamicznie do najnowszej wersji OpenSSL 0.9.8g dlli.
V2.71 (19 listopada 2007).
• “Data:” hedera jest obecnie tworzone przy użyciu statycznej wyszukiwanie macierzami na dany dzień tygodnia i miesiąca, zamiast nazw za pomocą CTime::Format. Pomaga to uniknąć generowania nieprawidłowa data nagłówków na angielskiej wersji Windows, w których lokalne języki tych strun zakończyłaby się używany. Dzięki informacji zwrotnej na codeproject strony kodowe (konkretnie http://www.codeproject.com/internet/csmtpconn.asp?df=100&forumid=472&mpp=50&select=2054493#xx2054493xx za zgłoszenie tego problemu).
V2.72 (23 grudnia 2007).
• Następujące informacje zwrotne od Selwyn Stevens, AUTH PLAIN mechanizm został pokonywanie przez niego podczas próby wysyłania poczty za pomocą gmail serwer SMTP, zdecydowałem się na powrót i ponowne badania obszaru uwierzytelnianie SMTP ponownie. Okazuje się, że sposób, w jaki zostałam wykonujące AUTH PLAIN wsparcie nie był taki sam, jak określony w odpowiednich dokumentach RFC. Kod został zaktualizowany, aby dostosowac ten określony w RFC. Ucieszyły mnie potwierdzone Fix as działa prawidłowo za pomocą gmail poczta SMTP Server na “smtp.gmail.com” SMTP/SSL na porcie 465. Ucieszyły mnie polubił także okazję do aktualizacji dokumentacji w sekcji z linkami do różnych RFC i stron www na tle materiały referencyjne
V2.73 (24 grudnia 2007).
• CPJNSMTPException::GetErrorMessage teraz wykorzystuje format_message_ignore_Wstawia znacznik. Więcej informacji można znaleźć Raymond Chen’s blog http://blogs.msdn.com/oldnewthing/archive/2007/11/28/6564257.aspx. Dzięki Aleksiej Kuznetsov za zgłoszenie tego problemu.
• Wszystkie nazwy użytkownika i hasła temp strun są już mocno zniszczone za pomocą SecureZeroMemory.
V2.74 (31 grudnia 2007).
• Zaktualizowano przykładowy app do czyszczenia kompilować na VC 2008
• Umawiają się na x64 compile problemy w RemoveCustomHeader & AddMultipleAttachments.
• Umawiają się na x64 compile problem w CPJNSMTPAppConfigurationDlg::CBAddStringAndData
• CPJNSMTPException::GetErrorMessage teraz wykorzystuje sprawdzone::tcsncpy_s
• Inne drobne kodowanie aktualizacje CPJNSMTPException::GetErrorMessage
V2.75 (2 luty 2008)
• Zaktualizowane szczegóły dotyczące praw autorskich.
• Fixed a bug w CPJNSMTPMessage::FormDateHeader gdzie czasami nieprawidłowy “Data:” heder zostanie utworzony. Bug zostanie zamanifestowana na dowolnym komputerze, wyprzedza o 32 GMT, gdy różnica nie jest wielokrotnością jedną godzinę. Według Windows Time Zone aplet ten bug miałaby w 65/92: Teheran, Kabul, Chennai, Kalkucie, Bombaj, New Delhi, Sri Jayawardenepura, Kathmandu, Yangon, Adelaide i Darwin. Dzięki Selwyn Stevens zgłoszenie tego bugu smakowicie fix.
V2.76 (1 marca 2008)
• CPJNSMTP priorytetowe wartości enum, konkretnie NO_priorytet została zmieniona, aby uniknąć kolizji z #zdefiniowanie o tej samej nazwie w systemie Windows SDK pliku nagłówka WinSpool.h. Na wartości enum dla DSN_ZWROT_TYPE również zostały zmienione, aby zachować spójność. Dzięki Zoran Buntic za zgłoszenie tego problemu.
• Stałe kompilacji problemy związane z ostatnimi zmianami w Base64 klasy. Dzięki Mat Berchtold za zgłoszenie tego problemu.
• Ponieważ kod jest teraz dla VC 2005 lub później, tylko kod korzysta teraz z Base64 wsparcie z ATL atlenc.h nagłówek pliku. Dzięki Mat Berchtold za zgłoszenie tej optymalizacji. Oznacza to, że projekty klientów nie będą już musieli zawierać Base64.cpp/h w swoich projektach.
V2.77 (31 maja 2008)
• Teraz kod kompiluje się bez problemu za pomocą analizy kodu (/Analizuj)
• Usunięto za pomocą funkcji QuotedPrintableEncode i zastapiona ATL::QPEncode
• Usunięto za pomocą funkcji QEncode i zastapiona ATL::QEncode
• Przerobione ReadResponse aby użyć CStringA zgodne z wdrażaniem w POP3 klasa autora.
V2.78 (20 lipca 2008)
• Fixed a bug w ReadResponse gdzie kod jest określenie, czy odebrał terminatora. Dzięki Tonego Cool zgłoszenie tego Bugu.
V2.79 (27 lipca 2008)
• Zaktualizowany kod skompilować poprawnie za pomocą _ATL_CSTRING_JASNE_BUDOWNICZYMI określ
• CPJNSMTPMessage::GetHeader teraz poprawnie zapewnia wszystkim długich nagłówkach zostały prawidłowo złożone. Dodatkowo funkcja ta została przerobiona aby utworzyć nagłówek wewnętrznie jako ASCII string zamiast jako TCHAR style CString.
V2.80 (16 sierpnia 2008)
• Zaktualizowano auth_AUTO login support opadał z powrotem do uwierzytelniania nie jeśli uwierzytelnianie nie jest obsługiwany przez serwer SMTP. Dzięki Mat Berchtold tej aktualizacji.
V2.81 (2 listopada 2008)
• Ulepszenia CPJNSMTPAddress konstruktora, który uwolni jednym ciągiem. Kod teraz usuwa zbędne cytaty.
• CPJNSMTPAddress::GetRegularFormat teraz tworzy regularną formę adres e-mail przed jej Q przetwarza ją.
• Próbka app korzysta teraz DPAPI do zaszyfrowania nazwy użytkownika i hasła, ustawienia konfiguracyjne.
• Próbka app jest obecnie powiązane z najnowszymi OpenSSL sterownika v0.9.8i bibliotek DLL.
• Zaktualizowane odnośniki do kodowania w html dokumentacji. Dodatkowo plik zip zawiera teraz OpenSSL dll. Dzięki Michael Grove zgłoszenie tego zagadnienia.
V2.82 (6 listopada 2008)
• Dla najlepszych celów kompatybilności z istniejącymi SMTP mail, serwery wszystkie nagłówki wiadomości, które zawierają adresy e-mail są teraz nie Q zakodowane. Dzięki Chrześcijańskiej Egging za zgłoszenie tego problemu.
• Optymalizacja wykorzystania CT2A klasa w całym kodzie
V2.83 (28 czerwca 2009).
• Zaktualizowano szczegółowe informacje dotyczące praw autorskich
• Fixed a bug, gdzie na zwrotny adres e-mail nie został poprawnie dodany do wiadomości. Dzięki Dmitriy Maksimowa za zgłoszenie tego problemu.
• Zaktualizowano przykładowy app’s project settings bardziej nowoczesne wartości domyślne.
• Zaktualizowano przykładowy exe do statku z OpenSSL v0.98k
• Fixed a bug w CPJNSMTPConnection::SendBodyPart gdzie mogłoby spowodować błędy od OpenSSL, gdy próbujesz wysłać korpus 0 bajty w rozmiarze. Ten problem może wystąpić, gdy MHTML na podstawie wiadomości e-mail są wysyłane i używasz “multipart/related” części ciała. Dzięki “atota” za zgłoszenie tego problemu
V2.84 (13 listopada 2009).
• Teraz obejmuje kompleksowe wsparcie dla MDN (Powiadamianie o losie wiadomości), jak określono w dokumencie RFC 3798. Dzięki Ron Brunton do monitowania tej aktualizacji.
• Przepisali CPJNSMTPMessage::SaveToDisk metoda CAtlFile
V2,85 (17 grudnia 2009).
• Próbka app jest obecnie powiązane z najnowszymi OpenSSL sterownika v0.9.8l dlls
• Zaktualizowano przykładowy kod w dokumentacji, aby lepiej opisać, jak korzystać z różnych klas. Dzięki Dionisis Kofos za zgłoszenie tego problemu.
V2.86 (23 maj 2010)
• Zaktualizowano szczegółowe informacje dotyczące praw autorskich
• Zaktualizowany przykładowy app do skompilowania precyzje na Visual Studio 2010
• Próbka app jest obecnie powiązane z najnowszymi OpenSSL v1.0.0 bibliotek
• Usunięcie nieużywanego “RADIAH” zmiennej w CPJNSMTPConnection::AuthCramMD5. Dzięki Alain Danteny za zgłoszenie tego problemu
• Zastępuje wszystkie pozwala na wykonywanie wywołań polecenia memcpy z wykonywanie wywołań polecenia memcpy_s
• Kod teraz obsługuje szyfrowanie STARTTLS zdefiniowany w dokumencie RFC 3207
• Jeżeli zacheta do DnsQuery zawodzi, wartości błędu jest teraz zakonserwowane SetLastError
• Teraz AddTextBody dobiera Typ mime root hałasami multipart/alternative. Jest to bardziej odpowiednie wartości do wykorzystania, które lepiej jest obsługiwane przez kilku klientów poczty. Dzięki Thane Złącze Hubbell za zgłoszenie tego problemu.
V2.87 (4 czerwca 2010).
• Zaktualizowany kod i próbka app do skompilowania precyzje podczas CPJNSMTP_NOSSL jest zdefiniowany. Dzięki “loggerlogger” za zgłoszenie tego problemu.
V2.88 (10 lipca 2010).
• Następujące informacje zwrotne od wielu użytkowników PJNSMTP, m.in. Chris Bamford i “loggerlogger”, zmiana z “multipart/mixed” do “multipart/alternatywnych” został przywrócony. Za pomocą “multipart/mixed” jest bardziej właściwa wartość do wykorzystania. Testowanie przez różnych klientów wykazały, że to ustawienie działa prawidłowo podczas wysyłania wiadomości poczty w GMail, Thunderbird czy Outlook. Niestety to jest cena, jaką muszę płacić po zaakceptowaniu końcowego użytkownika wkłady do mojej bazy kodu, którego nie mogę łatwo przetestować. Idąc dalej planuję być dużo bardziej wytrawny jakie modyfikacje przyjmę, aby uniknąć tych problemów.
• Na CPJNSMTPBodyPart teraz ma pojęcie, czy ciało jest uwazany jako załącznik. Poprzednio kodeks zakłada, że jeśli ustawisz m_sFilename parametru, która część ciała został wybrany załącznik. Zamiast teraz kod wykorzystuje “m_bAttachment” państwa zmiennej. Sprawia to, że w pamięci reprezentacja załącznika, który ma zostać dodany do wiadomości bez konieczności zapisujemy je do pliku pośredniego. Na przykład, tutaj będą kolejne kroki, które musisz przejść, aby dodać w pamięci obrazów w formacie jpeg na adres e-mail i był on wyświetlany jako załącznik:

Const BYTE* pInMemoryImage = wskaźnik do swojego obrazu;
DwMemoryImageSize DWORD = rozmiar w bajtach pInMemoryImage;
CPJNSMPTBase64zakodować zakodować;
Encode.Encode(pInMemoryImage, dwMemoryImageSize, ATL_BASE64_flag_NONE);
CPJNSMTPBodyPart imageBodyPart;
ImageBodyPart.SetRawBody(encode.Wynik());
ImageBodyPart.SetBase64(TRUE);
ImageBodyPart.SetAttachment(TRUE);
ImageBodyPart.SetContentType(_T(“image/jpg”));
ImageBodyPart.SetTitle(_T(“nazwa”));
CPJNSMTPMessage wiadomości;
Wiadomości.AddBodyPart imageBodyPart();

Dzięki Stephan Eizinga dla sugerujących ten sympatyczny dodatek.
V2.89 (28 listopada 2010).
• AddTextBody AddHTMLBody i umożliwiają obecnie główną część ciała, typ MIME, które ma być zmienione. Dzięki Thane Złącze Hubbell dla pytając tej aktualizacji.
• Dodano CPJNSMTPBodyPart::GetBoundary metody.
• Dodałem kilka kod próbki do próbki app’s CPJNSMTPAppDlg konstruktora, aby pokazać jak stworzyć wiadomość SMTP używanych częściach ciała. Dzięki Thane Złącze Hubbell dla pytając tej aktualizacji.
• CPJNSMTPBodyPart::GetHeader dozwala teraz notowane niezadrukowane i surowy osprzęt do wykorzystania
• Próbka app jest obecnie powiązane z najnowszymi OpenSSL 1.0.0b dlls
V2.90 (18 grudnia 2010).
• Usunięto metod Set/GetQuotedPrintable i ustaw/GetBase64 z CPJNSMTPBodyPart i zastąpić je nowymi /GetContentTransferEncoding metod, które współpracuje ze zwykłą enum.
• CPJNSMTPBodyPart::SetAttachment i CPJNSMTPBodyPart::SetFilename teraz automatycznie dobiera Content-Transfer-Encoding do base64 dla osprzętu. Dzięki Chrześcijańskiej Egging za zgłoszenie tego problemu.
• Próbka app jest obecnie powiązane z najnowszymi OpenSSL 1.0.0c dlls
V2.91 (8 lutego 2011)
• Zaktualizowano szczegółowe informacje dotyczące praw autorskich
• Zaktualizowany kod do obsługi najnowszych SSL i gniazda klasy od autora. Oznacza to, że kod teraz obsługuje IPv6 serwery SMTP
• Podłączyć metoda pozwala obecnie wiążące do określonego adresu IP
V2.92 (13 lutego 2011)
• Wymontować oprawę IP address parametr z połączyć metodę jak funkcjonowała już wsparcie dla oprawy za pomocą opcji Ustaw/GetBoundAddress metod.
• Ustaw/GetBoundAddress zostały przemianowane Ustaw/GetBindAddress zgodność z gniazdami klasy
V2.93 (1 kwietnia 2011)
• Przywróciły pojęcia adres nagłówek kodowania. Domyślnie ustawienie to jest wyłączone, ale mogą być włączone poprzez nową CPJNSMPTMessage::m_bAddressHeaderEncoding wartość boolean. Dzięki price Bostjan Erzen za zgłoszenie tego problemu.
• Próbka app jest obecnie powiązane z najnowszymi OpenSSL 1.0.0d bibliotek
V2.94 (4 grudnia 2011)
• Zaktualizowano CPJNSMTPBodyPart::GetHeader aby kodować tytuł nazwa pliku, jeśli nie zawierają znaków ASCII. Dzięki Anders Gustafsson za zgłoszenie tego problemu.
• Próbka app jest obecnie powiązane przeciwko latst OpenSSL 1.0.0e dlli.
2 lutego 2012 r.
• Osoby zainteresowane Albert Warda został przetłumaczony dokument release notes na bułgarski w http://www.fatcow.com/edu/naughter-smtp-bg/.
• David Leoney opracowała również kataloński tłumaczenie release notes http://www.fatcow.com/edu/naughter-smtp-ca/.
Prawidłowa wartość wynosi2,95 V (12 sierpnia 2012)
• Obsługę STARTTLS kod używa obecnie TLSv1_client_metoda funkcji OpenSSL zamiast SSLv23_client_method. To rozwiązuje problem gdzie wysyłanie e-maili za pomocą Hotmail, Windows Live było niestosowne.
• CPJNSMTPConnection::_Close stanowi obecnie bGracefully parametr
• Zaktualizowany kod, aby oczyścić kompilować na VC 2012
• Próbka app jest obecnie powiązane przeciwko latst OpenSSL 1.0.1c dlli.
• SendMessage teraz wrzuca a CPJNSMTPException jeśli OnSendProgress zwraca FALSE.
• Dodanie nowego zaznaczyć pole o nazwie “AutoUpgradeToSTARTTLS” co spowoduje automatyczne uaktualnienie a zwykły tekst podłączenie do STARTTLS jeśli kod wykryje, że serwer SMTP obsługuje STARTTLS. Jeśli serwer nie obsługuje STARTTLS, wtedy połączenie będzie identyczna jak jeśli podałeś “zwykłym”
• Przerobione kod, aby ustalić, czy należy go podłączyć za pomocą EHLO zamiast HELO pod nową wirtualną metodą zwaną DoEHLO.
• Przerobione wnętrza z ConnectESMTP metody.
14 września 2012 r.
• Osoby zainteresowane Mario Pozner przygotowała tłumaczenie release notes w ukraińskich w http://www.stoodio.org/gmail-archive-smtp.
V2.96 (23 września 2012)
• Usunięto SetContentBase GetContentBase i metody jak Content-Base hedera jest zaniechany od MHTML. W celu uzyskania szczegółowych informacji, patrz http://www.ietf.org/mail-archive/web/apps-discuss/current/msg03220.html. Dzięki Mat Berchtold za zgłoszenie tego problemu.
• Usunięto now defunct parametr z AddHTMLBody metody.
• Usunięto metodę FoldHeader jak był używany tylko przez m_sXMailer hedera.
• Zaktualizowano logikę w FolderSubjectHeader metoda aby prawidłowo obsługiwał ostatnia linijka tekstu, aby złożyć.
V2.97 (24 września 2012)
• Usunięto niepotrzebną linię kodu z CPJNSMTPConnection::SendRCPTForRecipient. Dzięki Mat Berchtold za zgłoszenie tego problemu.
V2.98 (30 września 2012)
• Zaktualizowany kod, aby uniknąć DLL sadzenia zagadnienia bezpieczeństwa przy komunikowaniu LoadLibrary. Dzięki Mat Berchtold za zgłoszenie tego problemu.
• Nagłówek pliku o nazwie “PJNLoadLibraryFromSystem32.h” jest teraz w zestawie który udostępnia wersję LoadLibrary, który ładuje DLL bez jakiejkolwiek informacji o ścieżce z katalogu systemowego Windows. Pomaga to w uniknięciu DLL sadzenia zagadnienia bezpieczeństwa w aplikacji podczas telefonowania z LoadLibrary a nazwa modułu bez jakiejkolwiek informacji o trasie.
V2.99 (25 listopada 2012)
• Ustalone pewne zagadnienia w kodeksie kiedy CPJNSMTP_NOSSL została zdefiniowana. Jak wygląda obsługa skompilowanie bez obsługa SSL został podzielony na kilka wersji językowych. Dzięki price Bostjan Erzen za zgłoszenie tego problemu.
V3,00 (12 marca 2013).
• Zaktualizowane szczegóły dotyczące praw autorskich.
• CPJNSMTPAddressArray typedef jest teraz zdefiniowana w klasie CPJNSMTPMessage zamiast w globalnej przestrzeni nazw. Oprócz tego klasy typedef jest obecnie znany jako “CAddressArray”
• Próbki projektu ujęte w pobierz teraz linki do różnych bibliotek OpenSSL via definiuje w stdafx.h zamiast via ustawienia projektu. Dzięki Ed Nafziger dla sugerujących ten sympatyczny dodatek.
• Próbka app już nie doda porządną hotmail adres do listy MDN. Dzięki Ed Nafziger na znajdywanie tego.
• Próbka app jest obecnie powiązane z najnowszymi OpenSSL 1.0.1e dlli.
• Próbka app teraz statycznie łączy się MFC
V3.01 (3 czerwca 2013).
• Demo app teraz wyłącza mima pole, po sprawdzeniu, czy wiadomość ma zostać wysłana jako HTML.
• Fixed a bug w próbce app gdzie Typ mime główną część ciała może być nieprawidłowo ustawiony na pustym ciągiem kiedy należy użyć domyślnego, którym jest “multipart/mixed”. Dzięki Ting L zgłoszenie tego Bugu.
7 czerwca 2013 r.
• Drobna aktualizacja do próbki app usuwającą Błąd ortograficzny w połączeniu typu string w oknie dialogowym Konfiguracja. Dzięki “don” za zgłoszenie tego problemu.
V3.02 : (5 styczeń 2014)
• Zaktualizowane szczegóły dotyczące praw autorskich.
• Zaktualizowany kod, aby oczyścić kompilować na VC 2013
• Stały problem z auth NTLM, jeżeli kod nie zostanie ustawiona prawidłowo “m_NDOKŁADNOŚĆ rozmiaru” wartość parametru prawidłowo CPJNSMPTBase64kodowania::kodowanie i dekodowanie. Dzięki John Pendleton zgłoszenie tego Bugu.
V3.03 (5 styczeń 2014)
• Na ConvertToUTF8 metoda teraz obsługuje także konwersję danych ASCII w UTF8. Dzięki Jeana-Christopha Voogden tej aktualizacji.
• Na CPJNSMTPConnection klasa dostarcza teraz Ustaw/GetSSLProtocol metod. Dzięki temu kod klienta, aby określić dokładną smak SSL którego kod powinien mówić. Obsługiwane są protokoły SSL v2/v3, TLS v1.0, TLS v1.1, TLS v1.2 i DTLS v1.0. Jest to wymagane dla niektórych serwerów SMTP, które używają protokołów SSLv2 lub v3 protokół zamiast bardziej nowoczesne TLS v1 protokół. Domyślnie użyj TLS 1.0. Być może będziesz musiał używać tego ustawienia kompatybilności dla wojowników z IBM Domino serwerów SMTP, które obsługują tylko starsze SSLv2/v3. Dzięki Jeana-Christopha Voogden tej aktualizacji.
• Wyrzucił wszystkie proxy metod połączenia, ponieważ nie mogą one być łatwo obsługiwane / sprawdzone przez autorkę.
• Przerobione kod w CPJNSMTPConnection::ConnectESMTP aby pomieścił wszystkie warianty 250 odpowiedzi, jak również działać insensitively sprawa, która jest wymagana przez ESMTP RFC.
• Bardziej metod wirtualnych do dalszego usprawniania klienta dostosowanie
• Rozwiązano problem w DoSTARTTLS metody, gdzie gniazdo pozostawałaby w stan połączenia SSL, jeśli negocjacje nie powiodły się. Wynikiem tego będzie później kod, który wysłał na gnieździe podczas zburz faza powieszeniem. Dzięki Jeana-Christopha Voogden za zgłoszenie tego problemu.
• Próbka app jest obecnie powiązane z najnowszymi OpenSSL 1.0.1f dlli.
W wersji 3.04 (26 stycznia 2014)
• Zaktualizowano wołają logic na górze ConnectESMTP metody. Dzięki Jeana-Christopha Voogden za zgłoszenie tego problemu.
V3.05 (9 lutego 2014)
• Umawiają się na kompilacji problem w metodzie CreateSSLSocket kiedy CPJNSMTP_NOSSL makra preprocesora jest zdefiniowany.
• Przerobione logika która nie SecureZeroMemory na wrażliwe dane tekstowe
V3.06 (13 kwietnia 2014)
• Próbka app jest obecnie powiązane z najnowszymi OpenSSL 1.0.1g dlli. Ta wersja jest z wyciętego wersję OpenSSL, która nie cierpi z Heartbleed Bugu.
• Proszę zwrócić uwagę, że domyślnie OpenSSL nie nazwę hosta walidacji. Próbki dostarczone app z PJNSMTP kod też nie nazwę hosta walidacji. Oznacza to, że w chwili obecnej w próbce app jest zagrożony człowiek w środku ataku w przypadku korzystania z SSL/TLS, aby połączyć się z serwerem SMTP. W celu uzyskania dalszych informacji oraz przykładowy kod, który należy włączyć do swojego prawdziwego SMTP client applications, proszę, patrzhttp://wiki.openssl.org/index.php/Hostname_validation, https://github.com/iSECPartners/ssl-conservatory i http://archives.seul.org/libevent/users/Feb-2013/msg00043.html.
V3.07 (15 listopada 2014)
• CNTLMClientAuth teraz przygląda się statyczna zależność na Secure32.dll zamiast za pomocą GetProcAddress.
• Na CNTLMClientAuth teraz QuerySecurityPackageInfo wzywa do określenia rozmiaru bufora w obsłudze.
• SEC_SUCCESS macro został wykonany metodą nazywaną “SEC_SUCCESS”.
• Czyszczenie ogólne z CNTLMClientAuth:: metoda GenClientContext
• Wydali CNTLMClientAuth spalające wirtualna.
• Usunięto nieistniejącej metodzie CPJNSMTPBodyPart::HexDigit.
• Przerobione na CPJNSMTPBodyPart::GetBody metody do wykorzystania biblioteki ATL::CAtlFile i ATL::CHeapPtr
• CPJNSMTPConnection teraz przygląda się statyczna zależność na Wininet.dll zamiast za pomocą GetProcAddress.
• CPJNSMTPConnection teraz przygląda się statyczny uzależnienia Dnsapi.dll zamiast za pomocą GetProcAddress.
• Domyślny timeout ustawione w konstruktorze CPJNSMTPConnection jest teraz 60 sekund dla obu debug i release buduje
• Usunięto now defunct CPJNSMTPConnection:: metoda MXLookupAvailable
• Usunięto now defunct CPJNSMTP_NOMXLOOKUP preprocesor wartość
• Usunięto now defunct PJNLoadLibraryFromSystem32.h modułu rozdziału powietrza
• CPJNSMTPConnection::SendMessage zostało przerobione do wykorzystania biblioteki ATL::CAtlFile i ATL::CHeapPtr
• CPJNSMTPConnection::SendMessage teraz czy UTF-8 konwersja na korpusie e-mail podczas wysyłania poczty zwykły tj. brak HTML czy mima, jeśli jest charset UTF-8. Dzięki Oliver Pfister za zgłoszenie tego problemu.
• Próbka app została zaktualizowana do skompilowania precyzje na VS 2013 Update 3 i wyższych
• Próbka app dostarczany z kodem źródłowym jest teraz Visual Studio 2008 i od tej wersji kod jest obsługiwane tylko na Visual Studio 2008 i nowszych
• Próbka app jest obecnie powiązane z najnowszymi OpenSSL 1.0.1j dlls
V3.08 (18 listopada 2014)
• Fixed a bug w CPJNSMTPBodyPart::GetBody gdzie załączonych plików były zawsze traktowane jako 0 w rozmiarze. Dzięki Oliver Pfister za zgłoszenie tego problemu.
V3.09 (14 grudnia 2014)
• Zaktualizowany kod do użycia przez autora SSLWrappers klas (http://www.naughter.com/sslwrappers.html), aby zapewnić funkcjonalność SSL dla PJNSMTP zamiast OpenSSL. Proszę zauważyć, że SSLWrappers klas zalezy od autora CryptoWrappers klas (http://www.naughter.com/cryptowrappers.html) również. Będziesz musiał ściągnąć oba te biblioteki i kopiowanie ich moduły do PJNSMTP katalog. Należy także pamiętać, że SSLWrappers CryptoWrapper i klas są obsługiwane tylko na VC 2013 lub później, a to oznacza, że PJNSMTP obsługa SSL jest obsługiwany tylko podczas kompilacji z VC 2013 lub później. Rozwiązanie pliki zawarte w download jest teraz dla VC 2013.
• Przy zmianie za pomocą SSLWrappers, kod ten może teraz obsługiwać dodatkowe smaki protokołu SSL. Są to: SSL v2 na swoim własnym, SSL v3 na własny OS SChannel SSL domyślna i AnyTLS. Zobacz CPJNSMTPConnection::SSLProtocol enum więcej szczegółów. Próbka app został zaktualizowany w celu umożliwienia tych wartości, które mają być stosowane oraz domyślne wartości enum jest teraz “OSDefault”.
16 grudnia 2014 r.
• Osoby zainteresowane Felicia Hoffman przekłada CPJNSMTPConnection release notes do Polski http://www.onderdelenshop24.com/science/?p=40.
V3.10 (16 grudnia 2014)
• Zaktualizowany kod do użycia najnowszych v1.03 wersja SSLWrappers
V3.11 (16 stycznia 2015)
• Zaktualizowano szczegółowe informacje dotyczące praw autorskich
• CPJNSMTPMessage::m_ReplyTo jest teraz macierz zamiast pojedynczego adresu. Dzięki price Bostjan Erzen dla przypominając tę aktualizację.
V3.12 (25 stycznia 2015)
• Dodanie CPJNSMTPBodyPart::InsertChildBodyPart i CPJNSMTPMessage::InsertBodyPart metod. Te nowe metody umieszcza znacznik części ciała jako pierwszego elementu w hierarchii dziecku części ciała zamiast do końca. Dodatkowo CPJNSMTPMessage::AddTextBody i CPJNSMTPMessage::AddHTMLBody metod obecnie nazywamy CPJNSMTPBodyPart::InsertChildBodyPart zamiast CPJNSMTPBodyPart::AddChildBodyPart aby upewnić się, że w tekście część wiadomości SMTP pojawia się jako pierwsze dziecko część ciała. Pomaga to uniknąć problemów, gdy Microsoft Exchange modyfikuje wieloczęściowe wiadomości gdzie tekst jest przenoszony do osprzętu nazywane ATT00001: Aby uzyskać więcej informacji, zobaczhttp://kb.mit.edu/confluence/pages/viewpage.action?pageId=4981187 i http://support2.microsoft.com/kb/969854. Dzięki Marco Veldman za zgłoszenie tego problemu.
• Usunięto wsparcie dla DTLSv1 protokół SSL, nie jest to stosowane do SMTP jak DTLS jest przeznaczony dla protokołu UDP, a nie TCP. Usuwanie to pomaga rozwiązać problem, gdy kod nie kompilować w VC 2013 jeśli użyto “Visual Studio 2013 – Windows XP (V120_xp)” zestaw narzędzi platformy. Dzięki price Bostjan Erzen za zgłoszenie tego problemu.
V3.13 (31 stycznia 2015)
• Stały błąd w CPJNSMTPException::GetErrorMessage gdzie nie byłoby wykorzystanie pełnej wartości HRESULT przy komunikowaniu FormatMessage. Dzięki price Bostjan Erzen za zgłoszenie tego problemu.
• Udoskonalona obsługa błędów w CPJNSMTPConnection::Connect podczas połączenia SSL wystąpią błędy. Dzięki price Bostjan Erzen za zgłoszenie tego problemu.
• Udoskonalona obsługa błędów w CPJNSMTPConnection::DoSTARTTLS podczas połączenia SSL wystąpią błędy. Dzięki price Bostjan Erzen za zgłoszenie tego problemu.
10 lutego 2015 r.
• Osoby zainteresowane Silvia Moraru przekłada CPJNSMTPConnection release notes na francuski w http://www.reservedeler-online.co.no/education/cpjnsmtpconnection-v3-13-une-collection-de-classes-mfc-en-charge-le-protocole-smtp/.
V3.14 (1 marca 2015)
• W metodzie DoEHLO została zaktualizowana w celu sprawdzenia wymagań DSN. Zmiana ta oznacza, że kod będzie się łączył z EHLO zamiast HELO kiedy DSN jest pożądana. Kod będzie teraz sprawdzić również czy DSN są obsługiwane przez serwer przy próbie wysłania DSN. Jeśli serwer nie obsługuje DSN w tym scenariuszu, a następnie nowy własny wyjątek stanowić będą odrzucane przez kod w CPJNSMTPConnection::FormMailFromCommand metody. Zapewnia to kod zachowuje się bardziej konsekwentnie w odniesieniu do DSN RFC. Dzięki Filip Mitchell do monitowania tej aktualizacji.
• Zmiana wartości enum dla CPJNSMTPMessage::DSN_NIE_podano na 0 od 0xFFFFFFFF.
V3.15 (29 marca 2015)
• Zaktualizowano CPJNSMTPConnection::AuthLogin obsłużyć większą ilość wariantów “username:” i “hasło:” serwera SMTP odpowiedzi. Dzięki Wang Le za zgłoszenie tego problemu.
V3.16 (1 czerwca 2015)
• Usunięcie nieużywanych CPJNSMTPMessage::ConvertHTMLToPlainText metody.
• Zdjąć cięgło w teście app’s configuration dialog pomiędzy wysyłając wiadomość z HTML body i wymagające, że wiadomość jest kodowanie MIME.
• Usunięto kod testu app, które dodały a zwykły tekst załącznik do wiadomości w debug buduje.
• Zaktualizowano CPJNSMTPMessage::AddHTMLBody potraktować przypadek, gdy wiadomość nie jest kodowanie MIME. W tym przypadku jednostka główna część wiadomości to po prostu zestaw do HTML. Dzięki Thane Złącze Hubbell za zgłoszenie tego problemu.