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
+3 -18
View File
@@ -75,7 +75,7 @@
import {
javaFileTypeName,
accountFileField,
clientAccountFileText,
serverAccountsFileText,
javaBase64,
defaultSwitchConfiguration,
@@ -413,24 +413,9 @@ function javaContact(contact: EmailContact): JavaContact {
return { ...contact };
}
/** A field of an account file: each character it cannot carry becomes a space, with a warning. */
const field = accountFileField;
/** EmailKonto.toString: nine fields; a field may hold no ';' and no line break. */
/** EmailKonto.toString (the core's clientAccountFileText). */
function clientAccountFile(client: EmailClientConfiguration, warn: Warn): string {
const account = client.account!;
const text = (value: string, what: string) => field(value, /[;\r\n]/, `${EMAIL_CLIENT_FILE}: ${what}`, warn);
return [
text(account.pop3Host, 'POP3 server'),
text(account.smtpHost, 'SMTP server'),
String(account.pop3Port),
String(account.smtpPort),
text(account.username, 'user name'),
text(account.password, 'password'),
text(account.lastName, 'last name'),
text(account.firstName, 'first name'),
text(account.email, 'address'),
].join(';');
return clientAccountFileText(client.account!, warn);
}
/**