This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-messaging-mail.git
commit eb1c93b34ad94af8eef4f74c116b8919bc2f928e Author: Oliver Lietz <[email protected]> AuthorDate: Tue Apr 26 09:32:44 2016 +0000 SLING-5644 Provide an messaging implementation based on Commons Email make charset configurable git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1740978 13f79535-47bb-0310-9956-ffa450edef68 --- .../messaging/mail/internal/SimpleMailBuilder.java | 41 +++++++--------------- .../internal/SimpleMailBuilderConfiguration.java | 7 ++++ 2 files changed, 20 insertions(+), 28 deletions(-) diff --git a/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilder.java b/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilder.java index e26ea71..1c04f0b 100644 --- a/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilder.java +++ b/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilder.java @@ -51,22 +51,14 @@ public class SimpleMailBuilder implements MailBuilder { // TODO use encryption and support more configuration options - private String subject; - - private String from; - - private String smtpHostname; - - private int smtpPort; - - private String smtpUsername; - - private String smtpPassword; + private SimpleMailBuilderConfiguration configuration; private static final String SUBJECT_KEY = "mail.subject"; private static final String FROM_KEY = "mail.from"; + private static final String CHARSET_KEY = "mail.charset"; + private static final String SMTP_HOSTNAME_KEY = "mail.smtp.hostname"; private static final String SMTP_PORT_KEY = "mail.smtp.port"; @@ -83,35 +75,28 @@ public class SimpleMailBuilder implements MailBuilder { @Activate private void activate(final SimpleMailBuilderConfiguration configuration) { logger.debug("activate"); - configure(configuration); + this.configuration = configuration; } @Modified private void modified(final SimpleMailBuilderConfiguration configuration) { logger.debug("modified"); - configure(configuration); - } - - private void configure(final SimpleMailBuilderConfiguration configuration) { - subject = configuration.subject(); - from = configuration.from(); - smtpHostname = configuration.smtpHostname(); - smtpPort = configuration.smtpPort(); - smtpUsername = configuration.smtpUsername(); - smtpPassword = configuration.smtpPassword(); + this.configuration = configuration; } @Override public Email build(@Nonnull final String message, @Nonnull final String recipient, @Nonnull final Map data) throws EmailException { final Map configuration = (Map) data.getOrDefault("mail", Collections.EMPTY_MAP); - final String subject = (String) configuration.getOrDefault(SUBJECT_KEY, this.subject); - final String from = (String) configuration.getOrDefault(FROM_KEY, this.from); - final String smtpHostname = (String) configuration.getOrDefault(SMTP_HOSTNAME_KEY, this.smtpHostname); - final int smtpPort = (Integer) configuration.getOrDefault(SMTP_PORT_KEY, this.smtpPort); - final String smtpUsername = (String) configuration.getOrDefault(SMTP_USERNAME_KEY, this.smtpUsername); - final String smtpPassword = (String) configuration.getOrDefault(SMTP_PASSWORD_KEY, this.smtpPassword); + final String subject = (String) configuration.getOrDefault(SUBJECT_KEY, this.configuration.subject()); + final String from = (String) configuration.getOrDefault(FROM_KEY, this.configuration.from()); + final String charset = (String) configuration.getOrDefault(CHARSET_KEY, this.configuration.charset()); + final String smtpHostname = (String) configuration.getOrDefault(SMTP_HOSTNAME_KEY, this.configuration.smtpHostname()); + final int smtpPort = (Integer) configuration.getOrDefault(SMTP_PORT_KEY, this.configuration.smtpPort()); + final String smtpUsername = (String) configuration.getOrDefault(SMTP_USERNAME_KEY, this.configuration.smtpUsername()); + final String smtpPassword = (String) configuration.getOrDefault(SMTP_PASSWORD_KEY, this.configuration.smtpPassword()); final Email email = new SimpleEmail(); + email.setCharset(charset); email.setMsg(message); email.addTo(recipient); email.setSubject(subject); diff --git a/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilderConfiguration.java b/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilderConfiguration.java index 5b63185..4801453 100644 --- a/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilderConfiguration.java +++ b/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilderConfiguration.java @@ -18,6 +18,7 @@ */ package org.apache.sling.commons.messaging.mail.internal; +import org.apache.commons.mail.EmailConstants; import org.osgi.service.metatype.annotations.AttributeDefinition; import org.osgi.service.metatype.annotations.ObjectClassDefinition; @@ -40,6 +41,12 @@ import org.osgi.service.metatype.annotations.ObjectClassDefinition; String from(); @AttributeDefinition( + name = "charset", + description = "charset to use for mails" + ) + String charset() default EmailConstants.UTF_8; + + @AttributeDefinition( name = "SMTP hostname", description = "hostname of SMTP server" ) -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
