diff --git a/main.go b/main.go index fc45da4..c32f53f 100644 --- a/main.go +++ b/main.go @@ -62,6 +62,10 @@ type Settings struct { User string `yaml:"user"` Sender string `yaml:"sender"` } `yaml:"smtp"` + IMAP struct { + Host string `yaml:"host"` + Port int `yaml:"port"` + } `yaml:"imap"` } // --- Config loading --- @@ -258,9 +262,10 @@ func adminHandler(w http.ResponseWriter, r *http.Request) { // If settings JSON format requested if r.URL.Query().Get("format") == "settings" { w.Header().Set("Content-Type", "application/json") - jsonData := fmt.Sprintf(`{"company_name":"%s","language":"%s","timezone":"%s","smtp_host":"%s","smtp_port":"%d","smtp_user":"%s","smtp_sender":"%s"}`, + jsonData := fmt.Sprintf(`{"company_name":"%s","language":"%s","timezone":"%s","smtp_host":"%s","smtp_port":"%d","smtp_user":"%s","smtp_sender":"%s","imap_host":"%s","imap_port":"%d"}`, settings.Company.Name, settings.Company.Language, settings.Company.Timezone, - settings.SMTP.Host, settings.SMTP.Port, settings.SMTP.User, settings.SMTP.Sender) + settings.SMTP.Host, settings.SMTP.Port, settings.SMTP.User, settings.SMTP.Sender, + settings.IMAP.Host, settings.IMAP.Port) w.Write([]byte(jsonData)) return } @@ -434,6 +439,8 @@ func globalSettingsSaveHandler(w http.ResponseWriter, r *http.Request) { settings.SMTP.Port, _ = strconv.Atoi(r.FormValue("smtp_port")) settings.SMTP.User = r.FormValue("smtp_user") settings.SMTP.Sender = r.FormValue("smtp_sender") + settings.IMAP.Host = r.FormValue("imap_host") + settings.IMAP.Port, _ = strconv.Atoi(r.FormValue("imap_port")) saveSettings(configDir, settings) @@ -951,6 +958,13 @@ const adminHTML = `
+
+

IMAP (Mail Client)

+
+
+
+
+

System (read-only)

@@ -1051,6 +1065,8 @@ const adminHTML = ` document.querySelector('[name="smtp_port"]').value = s.smtp_port || '587'; document.querySelector('[name="smtp_user"]').value = s.smtp_user || ''; document.querySelector('[name="smtp_sender"]').value = s.smtp_sender || ''; + document.querySelector('[name="imap_host"]').value = s.imap_host || ''; + document.querySelector('[name="imap_port"]').value = s.imap_port || '993'; } async function saveGlobal(e) {