diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/base/public/settings.html | 37 | ||||
-rw-r--r-- | plugins/base/routes.go | 10 |
2 files changed, 47 insertions, 0 deletions
diff --git a/plugins/base/public/settings.html b/plugins/base/public/settings.html index 7acacb5..da950e4 100644 --- a/plugins/base/public/settings.html +++ b/plugins/base/public/settings.html @@ -9,9 +9,46 @@ <h2>Settings</h2> <form method="post" action=""> + <label for="from">Full name:</label> + <input type="text" name="from" id="from" value="{{.Settings.From}}"> + <br><br> + + <label for="signature">Message signature:</label> + <textarea name="signature" id="signature" rows="5">{{.Settings.Signature}}</textarea> + <br><br> + + <label for="smtp_username">Custom SMTP Username (optional):</label> + <input type="text" name="smtp_username" id="smtp_username" value="{{.Settings.SMTPUsername}}" placeholder="Leave empty to use login username"> + <br> + <small>Use this if your SMTP server requires different credentials than your email login</small> + <br><br> + + <label for="smtp_password">Custom SMTP Password (optional):</label> + <input type="password" name="smtp_password" id="smtp_password" value="{{.Settings.SMTPPassword}}" placeholder="Leave empty to use login password"> + <br> + <small>Use this if your SMTP server requires different credentials than your email login</small> + <br><br> + + <label for="subscriptions">Subscribed folders:</label> + <select name="subscriptions" id="subscriptions" multiple> + {{ $subs := .Subscriptions }} + {{ range .Mailboxes }} + {{ if and (ne .Name "INBOX") (not (.HasAttr "\\Noselect")) }} + <option + value="{{.Name}}" + {{ if $subs.Has .Name }} + selected + {{ end }} + >{{.Name}}</option> + {{ end }} + {{ end }} + </select> + <br><br> + <label for="messages_per_page">Messages per page:</label> <input type="number" name="messages_per_page" id="messages_per_page" required value="{{.Settings.MessagesPerPage}}"> <br><br> + <input type="submit" value="Save"> </form> diff --git a/plugins/base/routes.go b/plugins/base/routes.go index 623a5cc..4640c93 100644 --- a/plugins/base/routes.go +++ b/plugins/base/routes.go @@ -1243,6 +1243,8 @@ type Settings struct { Signature string From string Subscriptions []string + SMTPUsername string + SMTPPassword string } func loadSettings(s alps.Store) (*Settings, error) { @@ -1268,6 +1270,12 @@ func (s *Settings) check() error { if len(s.From) > 512 { return fmt.Errorf("Full name must be 512 characters or fewer") } + if len(s.SMTPUsername) > 255 { + return fmt.Errorf("SMTP username must be 255 characters or fewer") + } + if len(s.SMTPPassword) > 255 { + return fmt.Errorf("SMTP password must be 255 characters or fewer") + } return nil } @@ -1311,6 +1319,8 @@ func handleSettings(ctx *alps.Context) error { } settings.Signature = ctx.FormValue("signature") settings.From = ctx.FormValue("from") + settings.SMTPUsername = ctx.FormValue("smtp_username") + settings.SMTPPassword = ctx.FormValue("smtp_password") params, err := ctx.FormParams() if err != nil { |