MailBridge

object MailBridge : CodBi

MailBridge – KI-initiierter E-Mail-Versand mit Ratenbegrenzung

Ermöglicht dem KI-Modell das Senden von E-Mails über „CALL:mail(to='...', subject='...', body='...')`-Marker. Verwendet zur Laufzeit die Mail-API von FORMCYCLE: Ruft den System-Mail-Kontext über ab „MailContextProvider.getSystemContext()“ und sendet dann über „SimpleTextMail“.

Sicherheit und Ratenbegrenzung

  • Globale Obergrenze: max. GLOBAL_MAX_MAILS_PER_HOUR E-Mails pro Stunde über alle Sitzungen hinweg

  • Obergrenze pro Sitzung: max. SESSION_MAX_MAILS E-Mails pro Streaming-Sitzung

  • Empfänger-Whitelist: Nur Adressen, die mit allowedRecipientPattern übereinstimmen, sind zulässig

  • Subjekt und Körper werden desinfiziert (keine Header-Injektion)

Konfiguration

EigentumFormatierenBeispiel
AI_Mail_Enabled„wahr“/„falsch“„wahr“
AI_Mail_AllowedRecipientsRegex-Muster.*@mycompany\.com
AI_Mail_MaxPerHourGanzzahl10
AI_Mail_MaxPerSessionGanzzahl3
AI_Mail_DisclaimerFreitext„KI-generiert“

Types

Link copied to clipboard
data class MailResult(val success: Boolean, val recipient: String? = null, val subject: String? = null, val error: String? = null)

Ergebnis eines E-Mail-Versandversuchs.

Properties

Link copied to clipboard

Disclaimer text appended to every AI-sent email. Customise via AI_Mail_Disclaimer.

Link copied to clipboard

Regex pattern that recipient addresses must match. null = allow all.

Link copied to clipboard

Entspricht „CALL:mail(to='...', subject='...', body='...')` in der Modellausgabe (vollständiges Muster).

Link copied to clipboard

Fallback-Muster für abgeschnittene CALL:mail, bei der der Text durch das Token-Limit abgeschnitten wurde. Aufnahmen an, Betreff und den verfügbaren Textkörper (auch ohne schließendes Anführungszeichen/Paren).

Link copied to clipboard

Whether the mail bridge is enabled. Enable via AI_Mail_Enabled=true.

Link copied to clipboard

Ob die Mail-Brücke zum Senden bereit ist. Wenn der System-Mail-Kontext zur Laufzeit nicht verfügbar ist, „sendMail“ gibt einen Fehler zurück.

Link copied to clipboard

Maximum mails per hour (global across all sessions).

Link copied to clipboard

Maximum mails per streaming session. Customise via AI_Mail_MaxPerSession.

Functions

Link copied to clipboard

Bereinigt eine aus der Modellausgabe erfasste E-Mail-Adresse. Entfernt Emojis, Symbole (z. B. ✉), Leerzeichen, und Zeilenumbrüche.

Link copied to clipboard
fun clearSession(sessionId: String)

Bereinigt den Ratenbegrenzungsstatus für eine abgeschlossene Sitzung.

Link copied to clipboard

Formats a mail result into a text block suitable for injecting into the conversation.

Link copied to clipboard
fun sendMail(to: String, subject: String, body: String, sessionId: String, clientIP: String = "unknown"): MailBridge.MailResult

Versucht, im Namen des KI-Modells eine E-Mail zu senden.