feat(PROJ-28): FQDN + smtp_out Konfiguration
- config: server.fqdn, SMTPOutConfig, smtp_out Abschnitt - config: IMAPServerConfig.FQDN (runtime-gesetzt) - main: FQDN-Fallback für SMTP EHLO, FQDN an IMAP-Server - imapserver: Greeting nutzt server.fqdn (RFC 3501) - smtpd/imapserver Modulversion 1.3 fix: Superadmin sieht keine Suche/IMAP/POP3 Nav-Links - Navbar: Suche, IMAP Import, POP3 Import nur für non-superadmin - Superadmin landet direkt auf Admin-Dashboard Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+16
-3
@@ -25,6 +25,7 @@ type Config struct {
|
||||
Storage StorageConfig `yaml:"storage"`
|
||||
Database DatabaseConfig `yaml:"database"`
|
||||
SMTP SMTPConfig `yaml:"smtp"`
|
||||
SMTPOut SMTPOutConfig `yaml:"smtp_out"`
|
||||
API APIConfig `yaml:"api"`
|
||||
Index IndexConfig `yaml:"index"`
|
||||
Audit AuditConfig `yaml:"audit"`
|
||||
@@ -35,15 +36,27 @@ type Config struct {
|
||||
// IMAPServerConfig holds settings for the embedded read-only IMAP archive server.
|
||||
type IMAPServerConfig struct {
|
||||
Enabled bool `yaml:"enabled"`
|
||||
Bind string `yaml:"bind"` // plain: ":1143", TLS: ":993"
|
||||
Bind string `yaml:"bind"` // plain: ":1143", TLS: ":993"
|
||||
TLSCert string `yaml:"tls_cert"` // path to PEM certificate; if set, TLS is enabled
|
||||
TLSKey string `yaml:"tls_key"` // path to PEM private key
|
||||
FQDN string `yaml:"-"` // set at runtime from server.fqdn
|
||||
}
|
||||
|
||||
// ServerConfig holds port settings for the main services.
|
||||
type ServerConfig struct {
|
||||
APIPort int `yaml:"api_port"`
|
||||
SMTPPort int `yaml:"smtp_port"`
|
||||
FQDN string `yaml:"fqdn"` // Fully Qualified Domain Name — used in SMTP EHLO, IMAP greeting, and generated links
|
||||
APIPort int `yaml:"api_port"`
|
||||
SMTPPort int `yaml:"smtp_port"`
|
||||
}
|
||||
|
||||
// SMTPOutConfig holds settings for outgoing email (password reset, invitations).
|
||||
type SMTPOutConfig struct {
|
||||
Host string `yaml:"host"`
|
||||
Port int `yaml:"port"`
|
||||
User string `yaml:"user"`
|
||||
Password string `yaml:"password"`
|
||||
TLS bool `yaml:"tls"`
|
||||
From string `yaml:"from"` // e.g. "archivmail <noreply@firma.de>"
|
||||
}
|
||||
|
||||
// StorageConfig holds file system paths for email storage.
|
||||
|
||||
Reference in New Issue
Block a user