# Mail-Adler Testing Plan ## 1. Lokalisierung - Deutsch ### 1.1 Ordner-Namen (Standard IMAP) Mail-Adler zeigt deutsche Namen für Standard-Ordner: | IMAP-Name | Mail-Adler Anzeige (Deutsch) | |-----------|-------------------------------| | `INBOX` | **Eingang** | | `Sent` / `[Gmail]/Sent Mail` | **Gesendet** | | `Drafts` / `[Gmail]/Drafts` | **Entwürfe** | | `Trash` / `[Gmail]/Bin` | **Papierkorb** | | `Spam` / `[Gmail]/Spam` | **Spam** | | `Archive` / `[Gmail]/All Mail` | **Archiv** | | `Flagged` | **Markiert** | ```cpp // src/models/MailFolder.h/cpp class MailFolder { private: QString getLocalizedName(const QString &imapName) const { static QMap localization = { {"INBOX", "Eingang"}, {"Sent", "Gesendet"}, {"Drafts", "Entwürfe"}, {"Trash", "Papierkorb"}, {"Spam", "Spam"}, {"Archive", "Archiv"}, {"Flagged", "Markiert"} }; return localization.value(imapName, imapName); } }; ``` ### 1.2 UI-Lokalisierung (Qt Translations) ```cpp // src/ui/MainWindow.cpp tr("Eingang") // INBOX tr("Gesendet") // Sent tr("Entwürfe") // Drafts tr("Papierkorb") // Trash tr("Spam") // Spam tr("Archiv") // Archive tr("Markiert") // Flagged tr("Synchronisieren") // Sync tr("Neue Nachricht") // New Message tr("Antworten") // Reply ``` --- ## 2. Test-Plan: Deutsche Mail-Anbieter ### 2.1 Test-Konten Vorbereitung **Verfügbare Test-Konten:** | Provider | Email | Status | |----------|-------|--------| | GMX | `georg.dahmen@gmx.de` | ✅ Verfügbar | | Web.de | `georg.dahmen.test@web.de` | ✅ Verfügbar | | Telekom | `georg.dahmen.gd@googlemail.com` | ✅ Verfügbar | ### 2.2 Test-Matrix ``` ┌─────────────────┬─────────────────┬──────────────┬──────────────┐ │ Funktion │ GMX │ Web.de │ Telekom/GM │ ├─────────────────┼─────────────────┼──────────────┼──────────────┤ │ Verbindung │ imap.gmx.net:993│ imap.web.de │ imap.gmail.c │ │ IMAP │ ✅ IMAP4rev1 │ ✅ IMAP4rev1 │ ✅ IMAP4rev1 │ │ SMTP │ mail.gmx.net:587│ mail.web.de │ smtp.gmail.c │ │ TLS/SSL │ ✅ 1.3 │ ✅ 1.3 │ ✅ 1.3 │ │ OAuth2 │ ❌ Nicht │ ❌ Nicht │ ✅ Google │ │ STARTTLS │ ✅ 587 │ ✅ 587 │ ✅ 587 │ │ 2FA Support │ ✅ │ ✅ │ ✅ │ └─────────────────┴─────────────────┴──────────────┴──────────────┘ ``` ### 2.3 Phase B Test-Szenarien #### Test 1: Verbindung & Authentifizierung **GMX:** ``` 1. Öffne Account-Setup Dialog 2. Email: georg.dahmen@gmx.de 3. Passwort: [Test-Passwort] 4. Server-Auto-Detect: imap.gmx.net:993 5. Ergebnis: ✅ Verbindung erfolgreich ``` **Web.de:** ``` 1. Email: georg.dahmen.test@web.de 2. Passwort: [f6r8Z9uZAq83IMztmiyc] 3. Server-Auto-Detect: imap.web.de:993 4. Ergebnis: ✅ Verbindung erfolgreich ``` **Telekom/Google:** ``` 1. Email: georg.dahmen.gd@googlemail.com 2. Passwort: [b*yZXxjd6CdwQAb6] 3. Oder OAuth2: https://accounts.login.idm.telekom.com/oauth2/auth 4. Ergebnis: ✅ Verbindung erfolgreich ``` #### Test 2: Ordner-Abruf ``` Erwartete Ordner (GMX): ✅ Eingang (INBOX) ✅ Gesendet (Sent) ✅ Entwürfe (Drafts) ✅ Papierkorb (Trash) ✅ Spam ✅ Archiv (Archive) ✅ Verschiedenes (Misc) (Web.de & Telekom ähnlich) ``` #### Test 3: Email-Sync ``` 1. Öffne Eingang 2. Klick "Synchronisieren" 3. Ergebnis: ✅ Alle Nachrichten abgerufen - Header angezeigt - Absender korrekt - Betreffzeilen angezeigt - Datum angezeigt ``` #### Test 4: Email lesen ``` 1. Klick auf erste Email 2. Ergebnis: ✅ Vollständiger Text angezeigt - Formatierung korrekt - HTML-Mails korrekt (Falls vorhanden) - Anhänge angezeigt ``` #### Test 5: Email versenden ``` GMX-Konto test: 1. Neue Nachricht 2. An: [Ihre andere Email] 3. Betreff: Test Mail-Adler 4. Text: "Dies ist eine Test-Email von Mail-Adler" 5. Senden 6. Ergebnis: ✅ Email in "Gesendet" Ordner Verification: - Email im Gesendet-Ordner sichtbar - Zeitstempel korrekt - Text korrekt empfangen ``` #### Test 6: Email löschen ``` 1. Öffne Email 2. Klick Löschen 3. Ergebnis: ✅ Email im Papierkorb 4. Verifizierung: - Papierkorb Ordner zeigt Email - Eingang zeigt Email nicht mehr ``` #### Test 7: Email wiederherstellen ``` 1. Öffne Papierkorb 2. Rechts-Klick auf gelöschte Email 3. "Wiederherstellen" 4. Ergebnis: ✅ Email zurück in Eingang ``` #### Test 8: Spam-Markierung ``` 1. Öffne Email 2. Klick "Als Spam markieren" 3. Ergebnis: ✅ Email im Spam-Ordner 4. Lokal: Email in lokale Spam-Datenbank eingetragen 5. Täglich 9:00 Uhr: Zu zentralem Service hochgeladen ``` --- ## 3. Cross-Platform Testing ### 3.1 Windows 11 Testing **Getestet von:** Georg Dahmen (Dein System) ``` OS: Windows 11 (Build 22621) Architektur: x86_64 RAM: 16 GB Qt: 6.4.2 Test-Szenarien: ✅ App-Start ✅ Account-Setup ✅ IMAP-Sync (3 Provider) ✅ Email-Versand ✅ Lokale Persistierung ``` ### 3.2 Linux Testing (geplant) ``` Distribution: Ubuntu 22.04 LTS (oder Debian) Architektur: x86_64 Qt: 6.4.2+ Test-Szenarien: - [ ] App-Start - [ ] Account-Setup (GMX, Web.de) - [ ] Keyring-Integration (Secret Service) - [ ] Desktop-Integration ``` ### 3.3 macOS Testing (geplant) ``` OS: macOS 13+ Architektur: x86_64 + ARM64 Qt: 6.4.2+ Test-Szenarien: - [ ] App-Start - [ ] Account-Setup - [ ] Keychain-Integration - [ ] Notarization & Signing ``` --- ## 4. ARM64 Support - Raspberry Pi 5 ### 4.1 Raspberry Pi 5 Architektur **Spezifikationen:** ``` Prozessor: ARM Cortex-A76 (64-bit) Architektur: ARMv8 / ARM64 RAM: 4GB / 8GB CPU-Kerne: 4 @ 2.4 GHz GPU: Broadcom VideoCore VII Kompatibilität: ✅ Vollständig kompatibel mit Mail-Adler Vergleich zu macOS ARM: Ähnlich, aber weniger Power ``` ### 4.2 Build-Prozess für ARM64 ```bash # CMake-Konfiguration für ARM64 cd build-arm64 cmake .. \ -DCMAKE_TOOLCHAIN_FILE=../cmake/arm64-toolchain.cmake \ -DCMAKE_BUILD_TYPE=Release \ -GNinja # Für Raspberry Pi: cmake .. \ -DCMAKE_SYSTEM_NAME=Linux \ -DCMAKE_SYSTEM_PROCESSOR=aarch64 \ -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ \ -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc \ -GNinja ninja ninja install ``` ### 4.3 Raspberry Pi OS Installation **Vorbereitung:** ```bash # Raspberry Pi OS Lite 64-bit # Download: https://www.raspberrypi.com/software/ # SSH aktivieren touch /boot/ssh # Qt6 & Dependencies installieren sudo apt update sudo apt install -y \ qt6-base-dev \ qt6-sql-plugins \ libsqlite3-dev \ libssl-dev \ libsasl2-dev \ cmake \ ninja-build \ build-essential # Mail-Adler compilieren & installieren git clone https://github.com/georg0480/mail-adler.git cd mail-adler mkdir build && cd build cmake .. -GNinja -DCMAKE_BUILD_TYPE=Release ninja sudo ninja install ``` ### 4.4 Performance-Erwartungen | Operation | Ergebnis | |-----------|----------| | App-Start | ~3-5 Sekunden | | Account-Setup | ~2-3 Sekunden | | IMAP-Sync (10 Emails) | ~2-4 Sekunden | | Email-Render (HTML) | ~1 Sekunde | | Gesamtspeicher | ~80-150 MB (mit Qt6) | ### 4.5 Testing auf Pi 5 **Minimales Test-Setup:** ``` Hardware: - Raspberry Pi 5 (8GB) - SD-Karte (64GB+) - Ethernet-Kabel (oder WiFi) Software: - Raspberry Pi OS 64-bit Lite - Qt6 - Mail-Adler Build Tests: 1. [ ] App startet 2. [ ] GMX-Account konfigurierbar 3. [ ] Sync funktioniert 4. [ ] Email lesbar 5. [ ] Email versendbar 6. [ ] CPU-Last akzeptabel 7. [ ] RAM-Nutzung ok ``` --- ## 5. macOS ARM64 Support ### 5.1 Apple Silicon Kompatibilität **Modelle:** - ✅ M1 / M1 Pro / M1 Max - ✅ M2 / M2 Pro / M2 Max - ✅ M3 / M3 Pro / M3 Max - ✅ M4 (zukünftig) **Vergleich:** | Kriterium | Pi 5 | macOS M1 | |-----------|------|----------| | CPU Kerne | 4 @ 2.4 GHz | 8 (4P+4E) @ 3.2 GHz | | RAM | 4-8 GB | 8-32 GB | | Performance | Niedrig | Sehr hoch | | Ideal für | Heimserver | Desktop/Laptop | ### 5.2 ARM64 Build für macOS ```bash # M1/M2/M3 Build arch -arm64 brew install qt6 mkdir build-arm64-mac && cd build-arm64-mac cmake .. \ -DCMAKE_OSX_ARCHITECTURES=arm64 \ -GNinja \ -DCMAKE_BUILD_TYPE=Release ninja # Codesign & Notarize für App Store codesign -s - build/Mail-Adler.app ``` --- ## 6. Windows ARM64 Support (Zukunft) Microsoft bietet auch Windows on ARM an (z.B. Copilot+ PCs). ``` Zukunft: Phase D+ - [ ] Windows ARM64 Build - [ ] Testing auf ARM64 Windows - [ ] Offizieller Release ``` --- ## 7. Test-Automation ### 7.1 Unit Tests (Qt Test Framework) ```cpp // tests/imap_client_test.h #include class ImapClientTest : public QObject { Q_OBJECT private slots: void testGMXConnection(); void testWebDeConnection(); void testTelekomConnection(); void testEmailSync(); void testEmailSend(); }; // Beispiel: void ImapClientTest::testGMXConnection() { ImapClient client; bool connected = client.connect( "imap.gmx.net", 993, "georg.dahmen@gmx.de", "password" ); QVERIFY(connected); } ``` ### 7.2 Integration Tests ```cpp // tests/e2e_tests.h class E2ETest : public QObject { Q_OBJECT private slots: void testFullWorkflow_GMX(); void testFullWorkflow_WebDe(); void testFullWorkflow_Telekom(); }; void E2ETest::testFullWorkflow_GMX() { // 1. App starten // 2. Account hinzufügen // 3. Sync // 4. Email lesen // 5. Email versenden // 6. Verifikation } ``` --- ## 8. Test-Checkliste Phase B ### Phase B Completion Checklist ``` Lokalisierung: - [x] Ordner-Namen Deutsch - [x] UI-Text Deutsch - [ ] Error-Messages Deutsch - [ ] Tooltips Deutsch GMX Testing (Windows 11): - [ ] Verbindung erfolgreich - [ ] Ordner abrufbar - [ ] Emails synchronisierbar - [ ] Emails lesbar - [ ] Emails versendbar - [ ] Löschen funktioniert - [ ] Spam-Markierung funktioniert Web.de Testing (Windows 11): - [ ] Verbindung erfolgreich - [ ] Ordner abrufbar - [ ] Emails synchronisierbar - [ ] Emails lesbar - [ ] Emails versendbar - [ ] 2FA funktioniert Telekom/Google Testing (Windows 11): - [ ] Verbindung erfolgreich - [ ] OAuth2 funktioniert - [ ] Ordner abrufbar - [ ] Emails synchronisierbar - [ ] Emails lesbar - [ ] Emails versendbar Linux Testing (geplant): - [ ] Compilation erfolgreich - [ ] App startet - [ ] Account-Setup funktioniert - [ ] Keyring-Integration ok macOS Testing (geplant): - [ ] Compilation erfolgreich (x86_64 + ARM64) - [ ] App startet - [ ] Keychain-Integration ok ARM64 Testing (Zukunft): - [ ] Pi 5 Build funktioniert - [ ] App startet auf Pi 5 - [ ] Basis-Funktionalität ok - [ ] Performance akzeptabel Sicherheit: - [ ] Passwörter verschlüsselt gespeichert - [ ] TLS 1.3 verwendet - [ ] Keine Passwörter in Logs - [ ] Telemetrie optional ``` --- ## 9. Release-Roadmap ### Phase B (aktuell) - März 2025 - Single-Account IMAP/SMTP - Deutsch-lokalisiert - Windows 11 Testing - GMX, Web.de, Telekom Support ### Phase B+ - April 2025 - Multi-Account Support - Linux Build verfügbar - macOS Build verfügbar ### Phase C - Mai 2025 - OpenPGP/E2EE Support - ARM64 Testing (Pi 5, M1/M2) - Beta-Release ### Phase D - Juni 2025 - S/MIME Support - Stable Release v1.0 --- ## 10. Feedback & Bug-Reporting **Für Testing-Ergebnisse:** - Email: georg.dahmen@proton.me - Format: Betriebssystem, Reproduktionsschritte, Fehler-Details - Screenshot/Log anhängen wenn möglich **Test-Daten speichern:** ``` ~/.config/mail-adler/test-logs/ ├─ gmx_sync_20250203.log ├─ web_send_20250203.log └─ telekom_oauth_20250203.log ```