From 69121a894ae9b8b46c2195d86f842194b1021263 Mon Sep 17 00:00:00 2001 From: Bernardus Jansen Date: Thu, 19 May 2016 22:46:58 +0200 Subject: [PATCH] SMTP frontend Signed-off-by: Bernardus Jansen --- libresonic-main/pom.xml | 6 +++ .../command/AdvancedSettingsCommand.java | 20 ++++---- .../AdvancedSettingsController.java | 20 ++++---- .../player/controller/MultiController.java | 22 ++++---- .../player/service/SettingsService.java | 34 ++++++------- .../webapp/WEB-INF/jsp/advancedSettings.jsp | 50 +++++++++++++++++++ 6 files changed, 104 insertions(+), 48 deletions(-) diff --git a/libresonic-main/pom.xml b/libresonic-main/pom.xml index e0fe90bb..f068e92d 100644 --- a/libresonic-main/pom.xml +++ b/libresonic-main/pom.xml @@ -259,6 +259,12 @@ 1.5.5 + + com.sun.mail + javax.mail + 1.5.5 + + taglibs standard diff --git a/libresonic-main/src/main/java/org/libresonic/player/command/AdvancedSettingsCommand.java b/libresonic-main/src/main/java/org/libresonic/player/command/AdvancedSettingsCommand.java index f2669608..093c34b3 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/command/AdvancedSettingsCommand.java +++ b/libresonic-main/src/main/java/org/libresonic/player/command/AdvancedSettingsCommand.java @@ -134,43 +134,43 @@ public class AdvancedSettingsCommand { this.toast = toast; } - public String getSMTPServer() { + public String getSmtpServer() { return smtpServer; } - public void setSMTPServer(String smtpServer) { + public void setSmtpServer(String smtpServer) { this.smtpServer = smtpServer; } - public String getSMTPEncryption() { + public String getSmtpEncryption() { return smtpEncryption; } - public void setSMTPEncryption(String smtpEncryption) { + public void setSmtpEncryption(String smtpEncryption) { this.smtpEncryption = smtpEncryption; } - public String getSMTPPort() { + public String getSmtpPort() { return smtpPort; } - public void setSMTPPort(String smtpPort) { + public void setSmtpPort(String smtpPort) { this.smtpPort = smtpPort; } - public String getSMTPUser() { + public String getSmtpUser() { return smtpUser; } - public void setSMTPUser(String smtpUser) { + public void setSmtpUser(String smtpUser) { this.smtpUser = smtpUser; } - public String getSMTPPassword() { + public String getSmtpPassword() { return smtpPassword; } - public void setSMTPPassword(String smtpPassword) { + public void setSmtpPassword(String smtpPassword) { this.smtpPassword = smtpPassword; } } diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/AdvancedSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/AdvancedSettingsController.java index d5abaf24..c822717a 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/controller/AdvancedSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/AdvancedSettingsController.java @@ -47,10 +47,10 @@ public class AdvancedSettingsController extends SimpleFormController { command.setLdapAutoShadowing(settingsService.isLdapAutoShadowing()); command.setBrand(settingsService.getBrand()); - command.setSMTPServer(settingsService.getSMTPServer()); - command.setSMTPEncryption(settingsService.getSMTPEncryption()); - command.setSMTPPort(settingsService.getSMTPPort()); - command.setSMTPUser(settingsService.getSMTPUser()); + command.setSmtpServer(settingsService.getSmtpServer()); + command.setSmtpEncryption(settingsService.getSmtpEncryption()); + command.setSmtpPort(settingsService.getSmtpPort()); + command.setSmtpUser(settingsService.getSmtpUser()); return command; } @@ -79,13 +79,13 @@ public class AdvancedSettingsController extends SimpleFormController { settingsService.setLdapManagerPassword(command.getLdapManagerPassword()); } - settingsService.setSMTPServer(command.getSMTPServer()); - settingsService.setSMTPEncryption(command.getSMTPEncryption()); - settingsService.setSMTPPort(command.getSMTPPort()); - settingsService.setSMTPUser(command.getSMTPUser()); + settingsService.setSmtpServer(command.getSmtpServer()); + settingsService.setSmtpEncryption(command.getSmtpEncryption()); + settingsService.setSmtpPort(command.getSmtpPort()); + settingsService.setSmtpUser(command.getSmtpUser()); - if (StringUtils.isNotEmpty(command.getSMTPPassword())) { - settingsService.setSMTPPassword(command.getSMTPPassword()); + if (StringUtils.isNotEmpty(command.getSmtpPassword())) { + settingsService.setSmtpPassword(command.getSmtpPassword()); } settingsService.save(); diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/MultiController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/MultiController.java index 0828afa6..d03137e2 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/controller/MultiController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/MultiController.java @@ -138,29 +138,29 @@ public class MultiController extends MultiActionController { } /* - * e-mail user new password via configured SMTP server + * e-mail user new password via configured Smtp server */ private boolean emailPassword(String password, String username, String email) { - /* Default to protocol smtp when SMTPEncryption is set to "None" */ + /* Default to protocol smtp when SmtpEncryption is set to "None" */ String prot = "smtp"; - if (settingsService.getSMTPServer() == null || settingsService.getSMTPServer().isEmpty()) { - LOG.warn("Can not send email; no SMTP server configured."); + if (settingsService.getSmtpServer() == null || settingsService.getSmtpServer().isEmpty()) { + LOG.warn("Can not send email; no Smtp server configured."); return false; } Properties props = new Properties(); - if (settingsService.getSMTPEncryption().equals("SSL/TLS")) { + if (settingsService.getSmtpEncryption().equals("SSL/TLS")) { prot = "smtps"; props.put("mail." + prot + ".ssl.enable", "true"); - } else if (settingsService.getSMTPEncryption().equals("STARTTLS")) { + } else if (settingsService.getSmtpEncryption().equals("STARTTLS")) { prot = "smtp"; props.put("mail." + prot + ".starttls.enable", "true"); } - props.put("mail." + prot + ".host", settingsService.getSMTPServer()); - props.put("mail." + prot + ".port", settingsService.getSMTPPort()); - /* use authentication when SMTPUser is configured */ - if (settingsService.getSMTPUser() != null && !settingsService.getSMTPUser().isEmpty()) { + props.put("mail." + prot + ".host", settingsService.getSmtpServer()); + props.put("mail." + prot + ".port", settingsService.getSmtpPort()); + /* use authentication when SmtpUser is configured */ + if (settingsService.getSmtpUser() != null && !settingsService.getSmtpUser().isEmpty()) { props.put("mail." + prot + ".auth", "true"); } @@ -183,7 +183,7 @@ public class MultiController extends MultiActionController { Transport trans = session.getTransport(prot); try { if (props.get("mail." + prot + ".auth").equals("true")) { - trans.connect(settingsService.getSMTPServer(), settingsService.getSMTPUser(), settingsService.getSMTPPassword()); + trans.connect(settingsService.getSmtpServer(), settingsService.getSmtpUser(), settingsService.getSmtpPassword()); } else { trans.connect(); } diff --git a/libresonic-main/src/main/java/org/libresonic/player/service/SettingsService.java b/libresonic-main/src/main/java/org/libresonic/player/service/SettingsService.java index 53081b75..79ffe859 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/service/SettingsService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/SettingsService.java @@ -144,11 +144,11 @@ public class SettingsService { private static final String KEY_SONOS_SERVICE_NAME = "SonosServiceName"; private static final String KEY_SONOS_SERVICE_ID = "SonosServiceId"; - private static final String KEY_SMTP_SERVER = "SMTPServer"; - private static final String KEY_SMTP_ENCRYPTION = "SMTPEncryption"; - private static final String KEY_SMTP_PORT = "SMTPPort"; - private static final String KEY_SMTP_USER = "SMTPUser"; - private static final String KEY_SMTP_PASSWORD = "SMTPPassword"; + private static final String KEY_SMTP_SERVER = "SmtpServer"; + private static final String KEY_SMTP_ENCRYPTION = "SmtpEncryption"; + private static final String KEY_SMTP_PORT = "SmtpPort"; + private static final String KEY_SMTP_USER = "SmtpUser"; + private static final String KEY_SMTP_PASSWORD = "SmtpPassword"; // Default values. private static final String DEFAULT_INDEX_STRING = "A B C D E F G H I J K L M N O P Q R S T U V W X-Z(XYZ)"; @@ -1459,52 +1459,52 @@ public class SettingsService { this.versionService = versionService; } - public String getSMTPServer() { + public String getSmtpServer() { return properties.getProperty(KEY_SMTP_SERVER, DEFAULT_SMTP_SERVER); } - public void setSMTPServer(String smtpServer) { + public void setSmtpServer(String smtpServer) { setString(KEY_SMTP_SERVER, smtpServer); } - public String getSMTPPort() { + public String getSmtpPort() { return getString(KEY_SMTP_PORT, DEFAULT_SMTP_PORT); } - public void setSMTPPort(String smtpPort) { + public void setSmtpPort(String smtpPort) { setString(KEY_SMTP_PORT, smtpPort); } - public String getSMTPEncryption() { + public String getSmtpEncryption() { return properties.getProperty(KEY_SMTP_ENCRYPTION, DEFAULT_SMTP_ENCRYPTION); } - public void setSMTPEncryption(String encryptionMethod) { + public void setSmtpEncryption(String encryptionMethod) { setString(KEY_SMTP_ENCRYPTION, encryptionMethod); } - public String getSMTPUser() { + public String getSmtpUser() { return properties.getProperty(KEY_SMTP_USER, DEFAULT_SMTP_USER); } - public void setSMTPUser(String smtpUser) { + public void setSmtpUser(String smtpUser) { setString(KEY_SMTP_USER, smtpUser); } - public String getSMTPPassword() { + public String getSmtpPassword() { String s = properties.getProperty(KEY_SMTP_PASSWORD, DEFAULT_SMTP_PASSWORD); try { return StringUtil.utf8HexDecode(s); } catch (Exception x) { - LOG.warn("Failed to decode SMTP password.", x); + LOG.warn("Failed to decode Smtp password.", x); return s; } } - public void setSMTPPassword(String smtpPassword) { + public void setSmtpPassword(String smtpPassword) { try { smtpPassword = StringUtil.utf8HexEncode(smtpPassword); } catch (Exception x) { - LOG.warn("Failed to encode SMTP password.", x); + LOG.warn("Failed to encode Smtp password.", x); } properties.setProperty(KEY_SMTP_PASSWORD, smtpPassword); } diff --git a/libresonic-main/src/main/webapp/WEB-INF/jsp/advancedSettings.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/advancedSettings.jsp index 57106568..344b8414 100644 --- a/libresonic-main/src/main/webapp/WEB-INF/jsp/advancedSettings.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/advancedSettings.jsp @@ -41,6 +41,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + + + + + +
+ + +
+ + +
+