Index: main/plugin-web/i18n/messages_en.xml
===================================================================
--- main/plugin-web/i18n/messages_en.xml	(revision 32467)
+++ main/plugin-web/i18n/messages_en.xml	(working copy)
@@ -1134,14 +1134,16 @@
 	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_TITLE">Inform online publication</message>
 	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_HINT">Select below the users and/or groups of the site that you want to inform the publication.&lt;br/&gt;</message>
 	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_HINT_2">&lt;em&gt;The selected users will receive an email inviting them to visit the published page.&lt;/em&gt;</message>
-	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_USERS">Users</message>
+	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_HINT_3">You can add a message to the senders:</message>
+    <message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_USERS">Users</message>
 	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_GROUPS">Groups</message>
 	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_BTN_OK">Send</message>
 	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_BTN_CANCEL">Cancel</message>
 	
 	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_MAIL_SUBJECT">New publication on site {siteTitle}</message>
 	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_MAIL_BODY">{user},&#13;&#13;{sender} inform you that the page "{pageTitle}" has been published or updated on the site {siteTitle}.&#13;We invite you to read this new publication by following the link below: {pageUrl}.&#13;&#13;See you on the website {siteUrl}</message>
-	
+	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_MAIL_BODY_WITH_COMMENT">{user},&#13;&#13;{sender} inform you that the page "{pageTitle}" has been published or updated on the site {siteTitle}.&#13;&#13;{comment}&#13;&#13;We invite you to read this new publication by following the link below: {pageUrl}.&#13;&#13;See you on the website {siteUrl}</message>
+    
     <message key="PLUGINS_WEB_CONTENT_CREATECONTENTMENU_ERROR_LANGUAGES">An error occurred: unable to collect the languages for this website</message>
     
 	<message key="PLUGINS_WEB_CONTENT_ADDCONTENTMENU_LABEL">Add content</message>
Index: main/plugin-web/i18n/messages_fr.xml
===================================================================
--- main/plugin-web/i18n/messages_fr.xml	(revision 32467)
+++ main/plugin-web/i18n/messages_fr.xml	(working copy)
@@ -1135,14 +1135,16 @@
 	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_TITLE">Informer de la mise en ligne</message>
 	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_HINT">Sélectionnez ci-après les utilisateurs et/ou les groupes d'utilisateurs du site que vous souhaitez informer de la mise en ligne.&lt;br/&gt;</message>
 	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_HINT_2">&lt;em&gt;Les personnes choisies recevront un email les invitant à visiter la page publiée.&lt;/em&gt;</message>
-	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_USERS">Utilisateurs</message>
+	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_HINT_3">Vous pouvez ajouter un message à l'intention des destinataires:</message>
+    <message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_USERS">Utilisateurs</message>
 	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_GROUPS">Groupes</message>
 	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_BTN_OK">Envoyer</message>
 	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_BTN_CANCEL">Annuler</message>
 	
 	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_MAIL_SUBJECT">Nouvelle publication sur le site {siteTitle}</message>
 	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_MAIL_BODY">{user},&#13;&#13;{sender} vous informe que la page "{pageTitle}" a été publiée ou mise à jour sur le site {siteTitle}.&#13;Nous vous invitons à prendre connaissance de cette nouvelle publication en suivant le lien ci-après: {pageUrl}.&#13;&#13;A bientôt sur le site {siteUrl}.</message>
-	
+	<message key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_MAIL_BODY_WITH_COMMENT">{user},&#13;&#13;{sender} vous informe que la page "{pageTitle}" a été publiée ou mise à jour sur le site {siteTitle}.&#13;&#13;{comment}&#13;&#13;Nous vous invitons à prendre connaissance de cette nouvelle publication en suivant le lien ci-après: {pageUrl}.&#13;&#13;A bientôt sur le site {siteUrl}.</message>
+    
 	<message key="PLUGINS_WEB_CONTENT_CREATECONTENTMENU_ERROR_LANGUAGES">Une erreur est survenue : impossible de récupérer la liste des langues disponibles pour ce site.</message>
     
 	<message key="PLUGINS_WEB_CONTENT_ADDCONTENTMENU_LABEL">Ajouter un contenu</message>
Index: main/plugin-web/resources/js/org/ametys/web/page/NotifyPublicationBox.i18n.js
===================================================================
--- main/plugin-web/resources/js/org/ametys/web/page/NotifyPublicationBox.i18n.js	(revision 32467)
+++ main/plugin-web/resources/js/org/ametys/web/page/NotifyPublicationBox.i18n.js	(working copy)
@@ -31,6 +31,10 @@
 	var form = org.ametys.web.page.NotifyPublicationBox._form.getForm();
 	form.findField("users").setValue('');
 	form.findField("groups").setValue('');
+	
+	var formComment = org.ametys.web.page.NotifyPublicationBox._formComment.getForm();
+	formComment.findField("comment").setValue('');
+	
 }
 
 org.ametys.web.page.NotifyPublicationBox._delayedInitialized = function()
@@ -56,15 +60,31 @@
 					})
 			]
 		});
+		
+		org.ametys.web.page.NotifyPublicationBox._formComment = new Ext.FormPanel( {
+			border: false,
+			items: [ new org.ametys.widgets.TextareaWidget ({
+				 name: 'comment',
+				 hideLabel: true,
+				 maxLength: 200,
+				 width: 410,
+				 height: 120,
+				 listeners: {
+					 'afterrender': function() {
+						 this.el.dom.style.marginLeft = "7px"
+					 }
+				 }
+			 })
+			]
+		});
 	
 		org.ametys.web.page.NotifyPublicationBox._box = new org.ametys.DialogBox ({
 			title: "<i18n:text i18n:key="PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_TITLE"/>",
 			icon: getPluginResourcesUrl("web") + "/img/page/notify_16.png",
 	
 			cls: 'text-dialog',
-			width: 470,
-			height: 220,
-			
+			width: 445,
+			height: 370,
 			items: [{
 						xtype: 'component',
 						cls: 'hint',
@@ -75,7 +95,16 @@
 						xtype: 'component',
 						cls: 'hint',
 						html: "<i18n:text i18n:key='PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_HINT_2'/>"
-					}
+					},
+					{
+						xtype: 'component',
+						cls: 'hint',
+						html: "<i18n:text i18n:key='PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_DIALOG_HINT_3'/>",
+						style: {
+							 marginTop: '10px',
+						}
+					},
+					org.ametys.web.page.NotifyPublicationBox._formComment
 			],
 				
 			closeAction: 'hide',
@@ -98,18 +127,25 @@
 
 org.ametys.web.page.NotifyPublicationBox._sendNotification = function ()
 {
-	var form = org.ametys.web.page.NotifyPublicationBox._form.getForm();
-	
-	var users = form.findField('users').getValue();
-	var groups = form.findField('groups').getValue();
-	var params = {
-			id: org.ametys.web.page.NotifyPublicationBox._pageId,
-			users: users != '' ? users.split(',') : [],
-			groups: groups != '' ? groups.split(',') : []
-	};
-	
-	var serverMessage = new org.ametys.servercomm.ServerMessage("web", 'page/send-notification', params, org.ametys.servercomm.ServerComm.PRIORITY_MAJOR, org.ametys.web.page.NotifyPublicationBox._sendNotificationCb, this, params, "xml");
-	org.ametys.servercomm.ServerComm.getInstance().send(serverMessage);
+	var formComment = org.ametys.web.page.NotifyPublicationBox._formComment.getForm();
+	if (formComment.isValid())
+	{
+		var form = org.ametys.web.page.NotifyPublicationBox._form.getForm();
+		
+		var users = form.findField('users').getValue();
+		var groups = form.findField('groups').getValue();
+		var comment = formComment.findField('comment').getValue();
+
+		var params = {
+				id: org.ametys.web.page.NotifyPublicationBox._pageId,
+				users: users != '' ? users.split(',') : [],
+				groups: groups != '' ? groups.split(',') : [],
+				comment: comment
+		};
+		
+		var serverMessage = new org.ametys.servercomm.ServerMessage("web", 'page/send-notification', params, org.ametys.servercomm.ServerComm.PRIORITY_MAJOR, org.ametys.web.page.NotifyPublicationBox._sendNotificationCb, this, params, "xml");
+		org.ametys.servercomm.ServerComm.getInstance().send(serverMessage);
+	}
 }
 
 org.ametys.web.page.NotifyPublicationBox._sendNotificationCb = function (response, params)
Index: main/plugin-web/src/org/ametys/web/repository/page/actions/SendOnlineNotificationAction.java
===================================================================
--- main/plugin-web/src/org/ametys/web/repository/page/actions/SendOnlineNotificationAction.java	(revision 32467)
+++ main/plugin-web/src/org/ametys/web/repository/page/actions/SendOnlineNotificationAction.java	(working copy)
@@ -92,6 +92,8 @@
         List<String> logins = (List<String>) jsParameters.get("users");
         List<String> groupIds = (List<String>) jsParameters.get("groups");
         
+        String comment = (String) jsParameters.get("comment");
+        
         Set<User> users = _getDistinctUsers (logins, groupIds);
         for (User user : users)
         {
@@ -99,7 +101,7 @@
             {
                 try
                 {
-                    String body = _getBody(notifier, user, page);
+                    String body = _getBody(notifier, user, page, comment);
                     SendMailHelper.sendMail(subject, null, body, user.getEmail(), from);
                 }
                 catch (MessagingException e) 
@@ -158,9 +160,10 @@
      * @param sender The user responsible for the notification
      * @param user The recipient of the notification
      * @param page The published page
+     * @param comment 
      * @return The email body
      */
-    protected String _getBody (User sender, User user, Page page)
+    protected String _getBody (User sender, User user, Page page, String comment)
     {
         Site site = page.getSite();
         
@@ -171,8 +174,17 @@
         bodyI18nParameters.put("siteUrl", new I18nizableText(site.getUrl()));
         bodyI18nParameters.put("pageTitle", new I18nizableText(page.getTitle()));
         bodyI18nParameters.put("pageUrl", new I18nizableText(site.getUrl() + "/" + page.getSitemap().getName() + "/" + page.getPathInSitemap() + ".html"));
-        
-        I18nizableText msg = new I18nizableText("plugin.web", "PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_MAIL_BODY", bodyI18nParameters);
+
+        I18nizableText msg = null;
+        if (StringUtils.isNotEmpty(comment))
+        {
+            bodyI18nParameters.put("comment", new I18nizableText(comment));
+            msg = new I18nizableText("plugin.web", "PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_MAIL_BODY_WITH_COMMENT", bodyI18nParameters);
+        }
+        else
+        {
+            msg = new I18nizableText("plugin.web", "PLUGINS_WEB_PAGE_NOTIFY_ONLINE_PUBLICATION_MAIL_BODY", bodyI18nParameters);
+        }
         
         return _i18nUtils.translate(msg, page.getSitemapName());
     }
