From a456cceb195b5f15ed161b7337d02ff8656ae59b Mon Sep 17 00:00:00 2001
From: Ludovic Poitou <ludovic.poitou@gmail.com>
Date: Thu, 19 Nov 2015 21:06:37 +0000
Subject: [PATCH] Adding support for sending Notifications as html instead of plaintext.
---
opendj-maven-plugin/src/main/resources/config/xml/org/forgerock/opendj/server/config/SMTPAccountStatusNotificationHandlerConfiguration.xml | 30 ++++++++++++++-
opendj-server-legacy/src/main/java/org/opends/server/util/EMailMessage.java | 22 ++++++++++
opendj-server-legacy/resource/schema/02-config.ldif | 10 ++++
opendj-server-legacy/src/main/java/org/opends/server/extensions/SMTPAccountStatusNotificationHandler.java | 6 +++
opendj-server-legacy/resource/config/config.ldif | 2 +
5 files changed, 66 insertions(+), 4 deletions(-)
diff --git a/opendj-maven-plugin/src/main/resources/config/xml/org/forgerock/opendj/server/config/SMTPAccountStatusNotificationHandlerConfiguration.xml b/opendj-maven-plugin/src/main/resources/config/xml/org/forgerock/opendj/server/config/SMTPAccountStatusNotificationHandlerConfiguration.xml
index 07127a7..2152d81 100644
--- a/opendj-maven-plugin/src/main/resources/config/xml/org/forgerock/opendj/server/config/SMTPAccountStatusNotificationHandlerConfiguration.xml
+++ b/opendj-maven-plugin/src/main/resources/config/xml/org/forgerock/opendj/server/config/SMTPAccountStatusNotificationHandlerConfiguration.xml
@@ -23,7 +23,8 @@
!
!
! Copyright 2007-2008 Sun Microsystems, Inc.
- ! Portions Copyright 2011 ForgeRock AS
+ ! Portions Copyright 2011-2015 ForgeRock AS
+ ! Portions copyright 2015 Edan Idzerda
! -->
<adm:managed-object name="smtp-account-status-notification-handler"
plural-name="smtp-account-status-notification-handlers"
@@ -144,6 +145,31 @@
</ldap:attribute>
</adm:profile>
</adm:property>
+ <adm:property name="send-email-as-html"
+ mandatory="true" advanced="true">
+ <adm:synopsis>
+ Indicates whether an email notification message should be sent as HTML.
+ </adm:synopsis>
+ <adm:description>
+ If this value is true, email notification messages are marked as text/html.
+ Otherwise outgoing email messages are assumed to be plaintext and marked as text/plain.
+ </adm:description>
+ <adm:default-behavior>
+ <adm:defined>
+ <adm:value>false</adm:value>
+ </adm:defined>
+ </adm:default-behavior>
+ <adm:syntax>
+ <adm:boolean />
+ </adm:syntax>
+ <adm:profile name="ldap">
+ <ldap:attribute>
+ <ldap:name>
+ ds-cfg-send-email-as-html
+ </ldap:name>
+ </ldap:attribute>
+ </adm:profile>
+ </adm:property>
<adm:property name="sender-address" mandatory="true">
<adm:synopsis>
Specifies the email address from which the message is sent.
@@ -185,7 +211,7 @@
<adm:property name="message-template-file" mandatory="true"
multi-valued="true">
<adm:synopsis>
- Specifies the path to the file containing the message template
+ Specifies the path to the file containing the message template
to generate the email notification messages.
</adm:synopsis>
<adm:description>
diff --git a/opendj-server-legacy/resource/config/config.ldif b/opendj-server-legacy/resource/config/config.ldif
index 3cd90c9..ec68f50 100644
--- a/opendj-server-legacy/resource/config/config.ldif
+++ b/opendj-server-legacy/resource/config/config.ldif
@@ -22,6 +22,7 @@
# Copyright 2006-2010 Sun Microsystems, Inc.
# Portions Copyright 2012-2014 Manuel Gaupp
# Portions Copyright 2010-2015 ForgeRock AS.
+# Portions copyright 2015 Edan Idzerda
#
#
# This file contains the primary Directory Server configuration. It must not
@@ -143,6 +144,7 @@
ds-cfg-sender-address: opends-notifications@example.com
ds-cfg-email-address-attribute-type: mail
ds-cfg-send-message-without-end-user-address: false
+ds-cdf-send-email-as-html: false
ds-cfg-message-template-file: account-temporarily-locked:config/messages/account-temporarily-locked.template
ds-cfg-message-template-file: account-permanently-locked:config/messages/account-permanently-locked.template
ds-cfg-message-template-file: account-unlocked:config/messages/account-unlocked.template
diff --git a/opendj-server-legacy/resource/schema/02-config.ldif b/opendj-server-legacy/resource/schema/02-config.ldif
index f68026f..8cd7ef4 100644
--- a/opendj-server-legacy/resource/schema/02-config.ldif
+++ b/opendj-server-legacy/resource/schema/02-config.ldif
@@ -24,6 +24,7 @@
# Portions Copyright 2010-2015 ForgeRock AS.
# Portions Copyright 2011 profiq, s.r.o.
# Portions Copyright 2012 Manuel Gaupp
+# Portions copyright 2015 Edan Idzerda
#
#
# This file contains the attribute type and objectclass definitions for use
@@ -3799,6 +3800,12 @@
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE
X-ORIGIN 'OpenDJ Directory Server' )
+attributeTypes: ( 1.3.6.1.4.1.36733.2.1.1.148
+ NAME 'ds-cfg-send-email-as-html'
+ EQUALITY booleanMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
+ SINGLE-VALUE
+ X-ORIGIN 'OpenDJ Directory Server' )
objectClasses: ( 1.3.6.1.4.1.26027.1.2.1
NAME 'ds-cfg-access-control-handler'
SUP top
@@ -5067,7 +5074,8 @@
STRUCTURAL
MUST ( ds-cfg-sender-address $
ds-cfg-send-message-without-end-user-address $
- ds-cfg-message-template-file )
+ ds-cfg-message-template-file $
+ ds-cfg-send-email-as-html )
MAY ( ds-cfg-email-address-attribute-type $
ds-cfg-recipient-address $
ds-cfg-message-subject )
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/SMTPAccountStatusNotificationHandler.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/SMTPAccountStatusNotificationHandler.java
index 5be10d5..c26e056 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/SMTPAccountStatusNotificationHandler.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/SMTPAccountStatusNotificationHandler.java
@@ -23,6 +23,7 @@
*
* Copyright 2008 Sun Microsystems, Inc.
* Portions Copyright 2014-2015 ForgeRock AS
+ * Portions copyright 2015 Edan Idzerda
*/
package org.opends.server.extensions;
@@ -622,6 +623,11 @@
EMailMessage message = new EMailMessage(config.getSenderAddress(),
recipients, subject);
message.setBody(messageBody);
+
+ if (config.isSendEmailAsHtml())
+ {
+ message.setBodyMIMEType("text/html");
+ }
if (logger.isTraceEnabled())
{
logger.trace("Set message body of " + messageBody);
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/util/EMailMessage.java b/opendj-server-legacy/src/main/java/org/opends/server/util/EMailMessage.java
index d80be4c..8436dd1 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/util/EMailMessage.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/util/EMailMessage.java
@@ -24,6 +24,7 @@
*
* Copyright 2006-2008 Sun Microsystems, Inc.
* Portions Copyright 2014-2015 ForgeRock AS
+ * Portions copyright 2015 Edan Idzerda
*/
package org.opends.server.util;
@@ -228,6 +229,25 @@
}
+ /**
+ * Retrieves the MIME Type for the body of this message
+ *
+ * @return The MIME Type for this message
+ */
+ public String getBodyMIMEType()
+ {
+ return bodyMIMEType;
+ }
+
+ /**
+ * Specifies the MIME Type for the body of this message
+ *
+ * @param bodyMIMEType The MIME Type for this message
+ */
+ public void setBodyMIMEType(String bodyMIMEType)
+ {
+ this.bodyMIMEType = bodyMIMEType;
+ }
/**
* Retrieves the body for this message. It may be directly manipulated by the
@@ -431,7 +451,7 @@
// multipart. Otherwise, just set the text of the message.
if (attachments.isEmpty())
{
- message.setText(body.toString());
+ message.setContent(body.toString(), bodyMIMEType);
}
else
{
--
Gitblit v1.10.0