feat(editor): F4.6e the e-mail program and e-mail server on a computer's desktop

The oracle MailWindowRun uses Java's e-mail windows as a person does and
answers their dialogs. The core sets and saves the program's account,
deletes a mail, checks a form as Java's window does, and gives the server
its domain, new and removed accounts and the window's own line; the room
sends both programs' views and takes their actions; the editor has both
windows. Better than Java: a name field for a new account, a user name the
server has is refused, deleting hits the folder shown, a new domain goes
into the accounts file at once.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-03 16:44:36 +00:00
co-authored by Claude Opus 5.5
parent aa54e5400e
commit 11f13bca84
33 changed files with 2841 additions and 52 deletions
+36
View File
@@ -1332,3 +1332,39 @@ Gemessen (03.10.2026):
`StringTokenizer` die Leerzeilen, und die Zelle einer unvollständigen
Zeile rückt in die davor. Liegt die Datei da, ist das Kästchen nach dem
nächsten Start wieder an, auch abgeschaltet.
### E-Mail-Programm und E-Mail-Server (F4.6e)
`MailWindowRun` öffnet Javas `GUIApplicationEmailServerWindow` und
`GUIApplicationEmailAnwendungWindow` auf je einem `GUIDesktopPanel` im Netz
von mail-lan und benutzt sie wie eine Person: am Server Startknopf,
Domainfeld, das Formular „Neues Konto“ (der Knopf hört auf `mousePressed`,
nicht auf eine Aktion), Konten-Liste und Entfernen; im Programm den
Konto-Dialog, das Fenster zum Verfassen (seine Felder und Knöpfe auf dem
Desktop), Abrufen, eine gewählte Mail, Antworten, Löschen. Javas
Meldungsdialoge beantwortet ein Wächter-Thread wie eine Person (OK, „Ja“)
und schreibt ihren Text mit (`packages/sim/test/mailWindow.java.json`).
Gemessen (03.10.2026):
* Der Server: „Starten“/„Anhalten“; das Fenster selbst, nicht der Server,
schreibt „POP3- und SMTP-Server wurden gestartet.“/„… angehalten.“ ins
Log. Die Domain nimmt nur, was `musterDomain` nimmt, und nur angehalten
(das Feld ist sonst gesperrt); die Konten-Liste zeigt danach die neue
Domain, `konten.txt` die alte bis zur nächsten Kontenänderung.
* Neues Konto: ohne Name oder Passwort `emailserver_msg25`, mit Leerzeichen
`msg24`; das Formular hat das Etikett „Vorname und Nachname:“, aber kein
Feld — jedes Konto heißt „Vorname Nachname“. Ein vorhandener Name (auch
in anderer Schreibweise) wird nicht angelegt, das Fenster meldet trotzdem
„Das Benutzerkonto … wurde angelegt.“ Entfernen fragt erst.
* Das Programm: Der Konto-Dialog prüft die Ports (`musterPort`) und den
Benutzernamen (`musterEmailBenutzername`, leer geht), sonst
`emailanwendung_msg46`; der Name wird geteilt (letztes Wort Nachname) und
`/konten.txt` geschrieben. Verfassen prüft die Adressen (`msg20`) und
verlangt einen Empfänger (`msg21`); gesendet schließt das Fenster und
zeigt „Gesendete“, Abrufen den Posteingang. Zeilen: Absendername (sonst
Adresse) bzw. die Empfängerliste wie `holeEmpfaengerListe`; Antworten
schreibt an den Absender, „RE: …“ und den Text zitiert unter „… schrieb:“.
* Löschen löscht in Javas Fenster die Zeile der zuletzt **angeklickten**
Liste: War zuvor eine gesendete Mail gewählt und ist im Posteingang schon
eine markiert, geht die gesendete.