Jak napisać protokół SMTP w Qt ?

0

Wiem, że mam za małą wiedzę ale może ktoś coś podpowie

Chciałbym spróbować napisać prostego klienta pocztowego który wysyłałby maile na skrzynkę pocztową - więc trzeba napisać obsługę protokołu SMTP i pytanie jest takie

  1. Czy Qt dysponuje jakąś biblioteką do wysyłania maili ?
  2. Jeżeli nie, to jak SMTP ogarnąć w C++ ? (owszem znalazłem kilka artykułów jak to ogarnąć ale nie wiem czy to będzie dobre np to - SMTP in C++ ale bardziej bym chciał to napisać przy użyciu tylko Qt)

Aha, nie chcę pisać 100000 klienta pocztowego ale ta funkcjonalność przydałaby mi się w jednym małym programie

2

@zkubinski pierwsze co bym zrobił to przerobił na cmake , ten kto pisał te pliki pro raczej nie ogarniał tematu aby było to wieczne
Prawdopodobna koncepcja autora, budujesz bibliotekę , potem budujesz z folderu demos a każdy projekt przykładowy wskazuje na folder z biblioteka. Tylko że ścieżki nie pasują bo sa wpisane na sztywno.

0

A to jeszcze pytanie związane z tym projektem

emailaddress.h

class SMTP_MIME_EXPORT EmailAddress
{
public:
...
}

i deklaracja makra SMTP_MIME_EXPORT

#ifdef SMTP_MIME_LIBRARY
#define SMTP_MIME_EXPORT Q_DECL_EXPORT
#else
#define SMTP_MIME_EXPORT Q_DECL_IMPORT
#endif

W zależności czy jest kompilowana biblioteka czy aplikacja to są odpowiednie wersje to rozumiem.

W jakim przypadku te dwie wersje są Q_DECL_EXPORT/Q_DECL_IMPORT istotne ?
Bo mogę zadeklarować tak

#define SMTP_MIME_EXPORT

i na moim gcc i clang działa bez zająknięcia

To jakas kompatybilnośc wstecz z przedpotopowym c++ , albo dla zachowania wieloplatformowości ?

0

https://github.com/mariuszmaximus/SmtpClient-for-Qt.git
wersja z użyciem cmake

@zkubinski ta wersja na PRO wymaga drobnego poprawienia np. dla demo1 musisz poprawić plik .pro
SMTP_LIBRARY_LOCATION = $$PWD/../../build/build-SMTPEmail-Qt_5_15_7_mingw64-Debug
tak ja napisał @revcorey dwa dwukropki zamist trzech ;) I poprawna nazwa katalogu musi być

No i oczywiście najpierw trzeba zbudować bibliotekę a dopiero potem demoX

0
Adamek Adam napisał(a):

No i oczywiście najpierw trzeba zbudować bibliotekę a dopiero potem demoX

próbowałem to budować na stan wiedzy jaki posiadam i niestety nic mi nie wychodzi. Nie mam pojęcia o budowaniu bibliotek... gdyby ktoś chciał podzielić się wiedzą na ten temat, to może niech tutaj napisze ?

0
  1. Zainstaluj msys2 z tej strony https://www.msys2.org/
  2. Uruchom konsole MSYS2 w menu start
    image
  3. w konsoli msys2 wpisujemy magiczne polecenia (to )
    pacman -S pactoys
    pacboy -S mc p7zip zip unrar git
    pacboy -S cmake:c clang:c lldb:c ninja:c gdb:c qt5:c graphviz:c opencl-headers:c opencl-icd:c openmp:c ffmpeg:c
  4. Zainstaluj Visual Studio Code
  5. Zainstaluj "C/C++ Extension Pack" https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools-extension-pack
  6. Zrob BAT (popraw ścieżki jak masz inne)
set VSCODE_EXE="C:\Users\%USERNAME%\AppData\Local\Programs\Microsoft VS Code\code.exe"
set MSYS2_ROOT=C:\msys64
@rem ustawiam środowisko 
@rem   czysty PATH bez ustawien komputera 
@rem   tylko VSC + kompilator + ninja + cmake
set PATH=C:\Windows\System32;%MSYS2_ROOT%\clang64\bin
@rem 
%VSCODE_EXE% 
  1. Uruchom visual studio code za pomocą BAT i otwórz folder (tutaj chodzi o to aby pozbyc sie z PATH wszystkiego zbędnego )
  2. 1,2,3,4
    image

1 użytkowników online, w tym zalogowanych: 0, gości: 1