diff --git a/src/main/java/org/olat/core/util/mail/MailerResult.java b/src/main/java/org/olat/core/util/mail/MailerResult.java
index d0e92443a39e920d441e6a14575f4e4689a15359..2e4aed7a48ae527954ebb9dacfc70db1560d7705 100644
--- a/src/main/java/org/olat/core/util/mail/MailerResult.java
+++ b/src/main/java/org/olat/core/util/mail/MailerResult.java
@@ -28,6 +28,8 @@ package org.olat.core.util.mail;
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.mail.Address;
+
 import org.olat.core.id.Identity;
 
 /**
@@ -49,7 +51,9 @@ public class MailerResult {
 	public static final int TEMPLATE_GENERAL_ERROR = 6;
 	public static final int ATTACHMENT_INVALID = 7;
 
-	private final List<Identity> failedIdentites = new ArrayList<Identity>();
+	private final List<String> invalidAddresses = new ArrayList<>();
+	private final List<Identity> failedIdentites = new ArrayList<>();
+	
 	private int returnCode = OK;
 
 	/**
@@ -80,6 +84,18 @@ public class MailerResult {
 	public void addFailedIdentites(Identity failedIdentity) {
 		this.failedIdentites.add(failedIdentity);
 	}
+	
+	public List<String> getInvalidAddresses() {
+		return invalidAddresses;
+	}
+	
+	public void addInvalidAddresses(Address[] addresses) {
+		if(addresses != null && addresses.length > 0) {
+			for(Address address:addresses) {
+				invalidAddresses.add(address.toString());
+			}
+		}
+	}
 
 	/**
 	 * Package helper to set the return code.
@@ -97,6 +113,9 @@ public class MailerResult {
 		if(newResult.getFailedIdentites() != null && newResult.getFailedIdentites().size() > 0) {
 			failedIdentites.addAll(newResult.getFailedIdentites());
 		}
+		if(newResult.getInvalidAddresses() != null && newResult.getInvalidAddresses().size() > 0) {
+			invalidAddresses.addAll(newResult.getInvalidAddresses());
+		}
 	}
 	
 	@Override
diff --git a/src/main/java/org/olat/core/util/mail/manager/MailManagerImpl.java b/src/main/java/org/olat/core/util/mail/manager/MailManagerImpl.java
index 6c57f821c1972e153925a08f054fe7ac7c666d8e..70de7ce09bcb7e8dcc316f03011602d38cf53277 100644
--- a/src/main/java/org/olat/core/util/mail/manager/MailManagerImpl.java
+++ b/src/main/java/org/olat/core/util/mail/manager/MailManagerImpl.java
@@ -35,6 +35,7 @@ import java.util.Collections;
 import java.util.Date;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
 import java.util.zip.Adler32;
@@ -48,6 +49,7 @@ import javax.mail.BodyPart;
 import javax.mail.Message.RecipientType;
 import javax.mail.MessagingException;
 import javax.mail.Multipart;
+import javax.mail.SendFailedException;
 import javax.mail.Session;
 import javax.mail.Transport;
 import javax.mail.internet.AddressException;
@@ -872,6 +874,9 @@ public class MailManagerImpl implements MailManager, InitializingBean  {
 		MimeMessage mail = createMimeMessage(fromId, from, toId, to, cc, bccLists, content, result);
 		if(mail != null) {
 			sendMessage(mail, result);
+			if(result != null && !result.isSuccessful()) {
+				handleErrors(result, fromId, toId, cc, bccLists);
+			}
 		}
 		return result;
 	}
@@ -1060,6 +1065,9 @@ public class MailManagerImpl implements MailManager, InitializingBean  {
 				//check that we send an email to someone
 				if(!toAddress.isEmpty() || !ccAddress.isEmpty() || !bccAddress.isEmpty()) {
 					sendRealMessage(fromAddress, toAddress, ccAddress, bccAddress, subject, body, attachments, result);
+					if(result != null && !result.isSuccessful()) {
+						handleErrors(result, fromId, toId, cc, bccLists);
+					}
 				}
 			}
 
@@ -1080,6 +1088,83 @@ public class MailManagerImpl implements MailManager, InitializingBean  {
 		}
 	}
 	
+	/**
+	 * Basically try to find compare the list of invalid addresses return by the mail server
+	 * with the different recipients (in the form of Identity) of the mail. 
+	 * 
+	 * @param result The result which contains the invalid addresses
+	 * @param fromId A recipient of the mail (optional can be null)
+	 * @param toId A recipient of the mail (optional can be null)
+	 * @param cc A recipient of the mail (optional can be null)
+	 * @param bccLists A list of contact list of the mail (optional can be null or empty)
+	 */
+	private void handleErrors(MailerResult result, Identity fromId, Identity toId, Identity cc,  List<ContactList> bccLists) {
+		if(result == null) return;
+
+		List<String> invalidAddresses = result.getInvalidAddresses();
+		if(invalidAddresses.size() > 0) {
+			if(match(fromId, invalidAddresses, true)) {
+				result.addFailedIdentites(fromId);
+			}
+			if(match(toId, invalidAddresses, true)) {
+				result.addFailedIdentites(fromId);
+			}
+			if(match(cc, invalidAddresses, true)) {
+				result.addFailedIdentites(fromId);
+			}
+			if(bccLists != null && bccLists.size() > 0) {
+				for(ContactList bccList:bccLists) {
+					Map<String,Identity> emailToIdentityMap = bccList.getIdentiEmails();
+					for(Map.Entry<String,Identity> entry:emailToIdentityMap.entrySet()) {
+						if(match(entry.getKey(), invalidAddresses, true)) {
+							result.addFailedIdentites(entry.getValue());
+						}
+					}
+				}
+			}
+		}
+	}
+	
+	/**
+	 * Try to find the email or institutional email address of the identity in
+	 * the list of addresses.
+	 * 
+	 * @param identity The identity
+	 * @param invalidAddresses The list of addresses to compare with
+	 * @param removeMatch if true, the matched address will be removed of the list
+	 * @return true if found
+	 */
+	private boolean match(Identity identity, List<String> invalidAddresses, boolean removeMatch) {
+		boolean match = false;
+		if(identity != null) {
+			match |= match(identity.getUser().getEmail(), invalidAddresses, removeMatch);
+			match |= match(identity.getUser().getProperty(UserConstants.INSTITUTIONALEMAIL, null), invalidAddresses, removeMatch);
+		}
+		return match;
+	}
+	
+	/**
+	 * Try to find the email address the list of addresses.
+	 * 
+	 * @param identity The email to compare
+	 * @param invalidAddresses The list of addresses to compare with
+	 * @param removeMatch if true, the matched address will be removed of the list
+	 * @return true if found
+	 */
+	private boolean match(String email, List<String> invalidAddresses, boolean removeMatch) {
+		if(StringHelper.containsNonWhitespace(email) && invalidAddresses != null) {
+			for(String invalidAddress:invalidAddresses) {
+				if(email.toLowerCase().contains(invalidAddress.toLowerCase())) {
+					if(removeMatch) {
+						invalidAddresses.remove(invalidAddress);
+					}
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+	
 	private void appendRecipients(DBMailImpl mail, List<ContactList> ccLists, List<Address> toAddress, List<Address> ccAddress,
 			boolean visible, boolean makeRealMail, MailerResult result) throws AddressException {
 		
@@ -1473,6 +1558,7 @@ public class MailManagerImpl implements MailManager, InitializingBean  {
 			p.put("mail.smtp.starttls.enable", "true");
 			p.put("mail.smtp.ssl.trust", mailhost);
 		}
+		p.put("mail.smtp.sendpartial", Boolean.TRUE);
 		
 		Session mailSession;
 		if (smtpAuth == null) {
@@ -1628,6 +1714,11 @@ public class MailManagerImpl implements MailManager, InitializingBean  {
 			} else {
 				result.setReturnCode(MailerResult.MAILHOST_UNDEFINED);
 			}
+		} catch(SendFailedException e) {
+			result.setReturnCode(MailerResult.RECIPIENT_ADDRESS_ERROR);
+			result.addInvalidAddresses(e.getInvalidAddresses());
+			result.addInvalidAddresses(e.getValidUnsentAddresses());
+			log.warn("Could not send mail", e);
 		} catch (MessagingException e) {
 			result.setReturnCode(MailerResult.SEND_GENERAL_ERROR);
 			log.warn("Could not send mail", e);
@@ -1637,18 +1728,32 @@ public class MailManagerImpl implements MailManager, InitializingBean  {
 	private void logMessage(MimeMessage msg) throws MessagingException {
 		try {
 			log.info("E-mail send: " + msg.getSubject());
+			logRecipients(msg, RecipientType.TO);
+			logRecipients(msg, RecipientType.BCC);
+			logRecipients(msg, RecipientType.CC);
 			log.info("Content    : " + msg.getContent());
 			
 			//File file = new File("/HotCoffee/tmp/mail_" + CodeHelper.getForeverUniqueID() + ".msg");
 			//OutputStream os = new FileOutputStream(file);
 			//msg.writeTo(os);
 			//IOUtils.closeQuietly(os);
-			
 		} catch (IOException e) {
 			log.error("", e);
 		}
 	}
 	
+	private void logRecipients(MimeMessage msg, RecipientType type) throws MessagingException {
+		Address[] recipients = msg.getRecipients(type);
+		if(recipients != null && recipients.length > 0) {
+			StringBuilder sb = new StringBuilder();
+			for(Address recipient:recipients) {
+				if(sb.length() > 0) sb.append(", ");
+				sb.append(recipient.toString());
+			}
+			log.info(type + "        : " + sb);
+		}
+	}
+	
 	private static class VFSDataSource implements DataSource {
 		
 		private final String name;
diff --git a/src/main/java/org/olat/modules/co/ContactFormController.java b/src/main/java/org/olat/modules/co/ContactFormController.java
index f3cc843a5de7f530039079d37ec75a9f38347334..18353f54cdf2d7862d44b0c3ffb87e6a1706e9a6 100644
--- a/src/main/java/org/olat/modules/co/ContactFormController.java
+++ b/src/main/java/org/olat/modules/co/ContactFormController.java
@@ -29,12 +29,6 @@ import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.mail.Address;
-import javax.mail.AuthenticationFailedException;
-import javax.mail.MessagingException;
-import javax.mail.SendFailedException;
-
-import org.olat.core.CoreSpringFactory;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.control.Controller;
@@ -45,11 +39,8 @@ import org.olat.core.gui.control.generic.messages.MessageUIFactory;
 import org.olat.core.gui.control.generic.modal.DialogBoxController;
 import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory;
 import org.olat.core.id.Identity;
-import org.olat.core.logging.OLATRuntimeException;
-import org.olat.core.logging.OLog;
-import org.olat.core.logging.Tracing;
 import org.olat.core.logging.activity.ThreadLocalUserActivityLogger;
-import org.olat.core.util.WebappHelper;
+import org.olat.core.util.StringHelper;
 import org.olat.core.util.mail.ContactList;
 import org.olat.core.util.mail.ContactMessage;
 import org.olat.core.util.mail.MailBundle;
@@ -59,6 +50,8 @@ import org.olat.core.util.mail.MailHelper;
 import org.olat.core.util.mail.MailLoggingAction;
 import org.olat.core.util.mail.MailManager;
 import org.olat.core.util.mail.MailerResult;
+import org.olat.user.UserManager;
+import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * <b>Fires Event: </b>
@@ -92,22 +85,23 @@ import org.olat.core.util.mail.MailerResult;
  * <LI>contact messages with pre-initialized subject and/or body</LI>
  * </UL>
  * <P>
- * TODO:pb:b refactor ContactFormController and ContactForm to extract a ContactMessageManager,
- * setSubject(..) setRecipients.. etc. should not be in the controller. Refactor to use ContactMessage!
  * @see org.olat.modules.co.ContactList
  * Initial Date: Jul 19, 2004
  * @author patrick
  */
 public class ContactFormController extends BasicController {
-	
-	private static final OLog log = Tracing.createLoggerFor(ContactFormController.class);
-	//
+
 	private Identity emailFrom;
 	
 	private ContactForm cntctForm;
 	private DialogBoxController noUsersErrorCtr;
-	private ArrayList<String> myButtons;
+	private List<String> myButtons;
+	
+	@Autowired
 	private MailManager mailService;
+	@Autowired
+	private UserManager userManager;
+	
 	/**
 	 * 
 	 * @param ureq
@@ -122,8 +116,7 @@ public class ContactFormController extends BasicController {
 		super(ureq, windowControl);
 		
 		//init email form
-		this.emailFrom = cmsg.getFrom();
-		mailService = CoreSpringFactory.getImpl(MailManager.class);
+		emailFrom = cmsg.getFrom();
 		
 		cntctForm = new ContactForm(ureq, windowControl, emailFrom, isReadonly,isCanceable,hasRecipientsEditable);
 		listenTo(cntctForm);
@@ -183,6 +176,7 @@ public class ContactFormController extends BasicController {
 	 * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest,
 	 *      org.olat.core.gui.control.Controller, org.olat.core.gui.control.Event)
 	 */
+	@Override
 	public void event(UserRequest ureq, Controller source, Event event) {
 		if (source == noUsersErrorCtr) {
 			if(event.equals(Event.CANCELLED_EVENT)) {
@@ -196,212 +190,103 @@ public class ContactFormController extends BasicController {
 					fireEvent(ureq, Event.CANCELLED_EVENT);
 				}
 			}
-		}
-		else if (source == cntctForm) {
+		} else if (source == cntctForm) {
 			if (event == Event.DONE_EVENT) {
-				//
-				boolean success = false;
-				try {
-					File[] attachments = cntctForm.getAttachments();
-					MailContext context = new MailContextImpl(getWindowControl().getBusinessControl().getAsString());
-					
-					MailBundle bundle = new MailBundle();
-					bundle.setContext(context);
-					if (emailFrom == null) {
-						// in case the user provides his own email in form						
-						bundle.setFrom(cntctForm.getEmailFrom()); 
-					} else {
-						bundle.setFromId(emailFrom);						
-					}
-					bundle.setContactLists(cntctForm.getEmailToContactLists());
-					bundle.setContent(cntctForm.getSubject(), cntctForm.getBody(), attachments);
-					
-					MailerResult result = mailService.sendMessage(bundle);
-					success = result.isSuccessful();
-					if(cntctForm.isTcpFrom()) {
-						
-						MailBundle ccBundle = new MailBundle();
-						ccBundle.setContext(context);
-						if (emailFrom == null) {
-							// in case the user provides his own email in form
-							ccBundle.setFrom(cntctForm.getEmailFrom()); 
-							ccBundle.setTo(cntctForm.getEmailFrom()); 
-						} else {
-							ccBundle.setFromId(emailFrom); 
-							ccBundle.setCc(emailFrom);							
-						}
-						ccBundle.setContent(cntctForm.getSubject(), cntctForm.getBody(), attachments);
-						
-						MailerResult ccResult = mailService.sendMessage(ccBundle);
-						success = ccResult.isSuccessful();
-					}
-				} catch (Exception e) {
-					//error in recipient email address(es)
-					handleAddressException(success);
+				doSend(ureq);
+			} else if (event == Event.CANCELLED_EVENT) {
+				fireEvent(ureq, Event.CANCELLED_EVENT);
+			}
+		}
+	}
+	
+	private void doSend(UserRequest ureq) {
+
+		MailerResult result;
+		try {
+			File[] attachments = cntctForm.getAttachments();
+			MailContext context = new MailContextImpl(getWindowControl().getBusinessControl().getAsString());
+			
+			MailBundle bundle = new MailBundle();
+			bundle.setContext(context);
+			if (emailFrom == null) {
+				// in case the user provides his own email in form						
+				bundle.setFrom(cntctForm.getEmailFrom()); 
+			} else {
+				bundle.setFromId(emailFrom);						
+			}
+			bundle.setContactLists(cntctForm.getEmailToContactLists());
+			bundle.setContent(cntctForm.getSubject(), cntctForm.getBody(), attachments);
+			
+			result = mailService.sendMessage(bundle);
+			if(cntctForm.isTcpFrom()) {
+				MailBundle ccBundle = new MailBundle();
+				ccBundle.setContext(context);
+				if (emailFrom == null) {
+					// in case the user provides his own email in form
+					ccBundle.setFrom(cntctForm.getEmailFrom()); 
+					ccBundle.setTo(cntctForm.getEmailFrom()); 
+				} else {
+					ccBundle.setFromId(emailFrom); 
+					ccBundle.setCc(emailFrom);							
 				}
-				cntctForm.setDisplayOnly(true);
-				if (success) {
+				ccBundle.setContent(cntctForm.getSubject(), cntctForm.getBody(), attachments);
+				
+				MailerResult ccResult = mailService.sendMessage(ccBundle);
+				result.append(ccResult);
+			}
+			
+			if(result != null) {
+				if (result.isSuccessful()) {
 					showInfo("msg.send.ok");
 					// do logging
 					ThreadLocalUserActivityLogger.log(MailLoggingAction.MAIL_SENT, getClass());
 					fireEvent(ureq, Event.DONE_EVENT);
 				} else {
-					showInfo("error.msg.send.nok");
+					showError(result);
 					fireEvent(ureq, Event.FAILED_EVENT);
 				}
-			} else if (event == Event.CANCELLED_EVENT) {
-				fireEvent(ureq, Event.CANCELLED_EVENT);
 			}
+		} catch (Exception e) {
+			logError("", e);
+			showWarning("error.msg.send.nok");
 		}
+		cntctForm.setDisplayOnly(true);
 	}
+	
+	private void showError(MailerResult result) {
+		StringBuilder error = new StringBuilder(1024);
+		error.append(translate("error.msg.send.nok"));
+		if(result != null && (result.getFailedIdentites().size() > 0 || result.getInvalidAddresses().size() > 0)) {
+			error.append("<br />");
 
-	/**
-	 * handles events from Components <BR>
-	 * creates an InfoMessage in the WindowController on error. <br>
-	 * <b>Fires: </b>
-	 * <UL>
-	 * <LI><b>Event.DONE_EVENT: </B> <BR>
-	 * email was sent successfully by the underlying Email subsystem</LI>
-	 * <LI><b>Event.FAILED_EVENT: </B> <BR>
-	 * email was not sent correct by the underlying Email subsystem <BR>
-	 * email may be partially sent correct, but some parts failed.</LI>
-	 * <LI><b>Event.CANCELLED_EVENT: </B> <BR>
-	 * user interaction, i.e. canceled message creation</LI>
-	 * </UL>
-	 * <p>
-	 * 
-	 * @param ureq
-	 * @param source
-	 * @param event
-	 */
-	public void event(UserRequest ureq, Component source, Event event) {
-		//
-	}
-
-	/**
-	 * @param success
-	 */
-	private void handleAddressException(boolean success) {
-		StringBuilder errorMessage = new StringBuilder();
-		if (success) {
-			errorMessage.append(translate("error.msg.send.partially.nok"));
-			errorMessage.append("<br />");
-			errorMessage.append(translate("error.msg.send.invalid.rcps"));
-		} else {
-			errorMessage.append(translate("error.msg.send.nok"));
-			errorMessage.append("<br />");
-			errorMessage.append(translate("error.msg.send.553"));
-		}
-		this.getWindowControl().setError(errorMessage.toString());
-	}
-
-	/**
-	 * handles the sendFailedException <p>generates an infoMessage
-	 * 
-	 * @param e
-	 * @throws OLATRuntimeException
-	 * return boolean true: handling was successful, exception can be ignored; 
-	 * false: handling was not successful, refuse to proceed.
-	 */
-	public boolean handleSendFailedException(SendFailedException e) {
-		//get wrapped excpetion
-		MessagingException me = (MessagingException) e.getNextException();
-		if (me instanceof AuthenticationFailedException) {
-			// catch this one separately, this kind of exception has no message 
-			// as the other below
-			StringBuilder infoMessage = new StringBuilder();
-			infoMessage.append(translate("error.msg.send.nok"));
-			infoMessage.append("<br />");
-			infoMessage.append(translate("error.msg.smtp.authentication.failed"));
-			this.getWindowControl().setInfo(infoMessage.toString());			
-			log.warn("Mail message could not be sent: ", e);
-			// message could not be sent, however let user proceed with his action
-			return true;
-		}		
-		String message = me.getMessage();
-		if (message.startsWith("553")) {
-			//javax.mail.MessagingException: 553 5.5.4 <invalid>... Domain name
-			// required for sender address invalid@id.unizh.ch
-			//javax.mail.MessagingException: 553 5.1.8 <invalid@invalid.>...
-			// Domain of sender address invalid@invalid does not exist
-			//...
-			StringBuilder infoMessage = new StringBuilder();
-			infoMessage.append(translate("error.msg.send.553"));
-			showInfo(infoMessage.toString());
-
-		} else if (message.startsWith("Invalid Addresses")) {
-			//            javax.mail.SendFailedException: Sending failed;
-			//              nested exception is:
-			//                class javax.mail.SendFailedException: Invalid Addresses;
-			//              nested exception is:
-			//                class javax.mail.SendFailedException: 550 5.1.1 <dfgh>... User
-			// unknownhandleSendFailedException
-			StringBuilder infoMessage = new StringBuilder();
-			infoMessage.append(translate("error.msg.send.nok"));
-			infoMessage.append("<br />");
-			infoMessage.append(translate("error.msg.send.invalid.rcps"));
-			infoMessage.append(addressesArr2HtmlOList(e.getInvalidAddresses()));
-			this.getWindowControl().setInfo(infoMessage.toString());
-		} else if (message.startsWith("503 5.0.0")) {
-			// message:503 5.0.0 Need RCPT (recipient) ,javax.mail.MessagingException
-			StringBuilder infoMessage = new StringBuilder();
-			infoMessage.append(translate("error.msg.send.nok"));
-			infoMessage.append("<br />");
-			infoMessage.append(translate("error.msg.send.no.rcps"));
-			this.getWindowControl().setInfo(infoMessage.toString());
-		} else if (message.startsWith("Unknown SMTP host")) {
-			StringBuilder infoMessage = new StringBuilder();
-			infoMessage.append(translate("error.msg.send.nok"));
-			infoMessage.append("<br />");
-			infoMessage.append(translate("error.msg.unknown.smtp", WebappHelper.getMailConfig("mailFrom")));
-			this.getWindowControl().setInfo(infoMessage.toString());			
-			log.warn("Mail message could not be sent: ", e);
-			// message could not be sent, however let user proceed with his action
-			return true;
-		} else if (message.startsWith("Could not connect to SMTP host")){
-			//could not connect to smtp host, no connection or connection timeout
-			StringBuilder infoMessage = new StringBuilder();
-			infoMessage.append(translate("error.msg.send.nok"));
-			infoMessage.append("<br />");
-			infoMessage.append(translate("error.msg.notconnectto.smtp", WebappHelper.getMailConfig("mailhost")));
-			this.getWindowControl().setInfo(infoMessage.toString());			
-			log.warn(null, e);
-			// message could not be sent, however let user proceed with his action
-			return true;
-		}
-		else {
-			throw new OLATRuntimeException(ContactFormController.class, "" + cntctForm.getEmailTo(), e.getNextException());
-		}
-		// message could not be sent, return false
-		return false;
-	}
-
-	/**
-	 * converts an Address[] to an HTML ordered list
-	 * 
-	 * @param invalidAdr Address[] with invalid addresses
-	 * @return StringBuilder
-	 */
-	private StringBuilder addressesArr2HtmlOList(Address[] invalidAdr) {
-		StringBuilder iAddressesSB = new StringBuilder();
-		if (invalidAdr != null && invalidAdr.length > 0) {
-			iAddressesSB.append("<ol>");
-			for (int i = 0; i < invalidAdr.length; i++) {
-				iAddressesSB.append("<li>");
-				iAddressesSB.append(invalidAdr[i].toString());
-				iAddressesSB.append("</li>");
+			StringBuilder ids = new StringBuilder(1024);
+			for(Identity identity:result.getFailedIdentites()) {
+				if(ids.length() > 0) ids.append(", ");
+				
+				String fullname = userManager.getUserDisplayName(identity);
+				if(StringHelper.containsNonWhitespace(fullname)) {
+					ids.append(fullname);
+				}
+			}
+			for(String invalidAddress:result.getInvalidAddresses()) {
+				if(ids.length() > 0) ids.append(", ");
+				ids.append(invalidAddress);
 			}
-			iAddressesSB.append("</ol>");
+			error.append(translate("error.msg.send.invalid.rcps", new String[]{ ids.toString() }));
 		}
-		return iAddressesSB;
+		getWindowControl().setError(error.toString());
 	}
 
+	@Override
+	public void event(UserRequest ureq, Component source, Event event) {
+		//
+	}
 
 	/**
 	 * @see org.olat.core.gui.control.DefaultController#doDispose(boolean)
 	 */
+	@Override
 	protected void doDispose() {
 		//
 	}
-
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_ar.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_ar.properties
index 79c245e6a751a6ac0cd7580b80e0dc7bfbdedf21..8f83ad6e98b4828a24b2628695598b3714feff1b 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_ar.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_ar.properties
@@ -13,7 +13,7 @@ error.msg.content.nok=\u0631\u0633\u0627\u0644\u062A\u0643 \u0623\u0648 \u0645\u
 error.msg.notconnectto.smtp=\u0644\u0627 \u064A\u0645\u0643\u0646 \u062A\u0643\u0648\u064A\u0646\u0647. <i>{0}</i> SMTP \u0627\u0644\u062A\u0648\u0635\u064A\u0644 \u0628\u0633\u064A\u0631\u0641\u0631
 error.msg.nousers=\u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0629 \u0627\u0644\u0645\u062D\u062F\u062F\u0629 \u0644\u0627 \u064A\u0648\u062C\u062F \u0628\u0647\u0627 \u0645\u0634\u0627\u0631\u0643\u064A\u0646\u060C \u0631\u0633\u0627\u0644\u062A\u0643 \u0627\u0644\u0628\u0631\u064A\u062F\u064A\u0629 \u0644\u0627 \u064A\u0645\u0643\u0646 \u0625\u0631\u0633\u0627\u0644\u0647\u0627.
 error.msg.send.553=\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0645\u0631\u0633\u0644 \u0648/\u0623\u0648 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0645\u0633\u062A\u0644\u0645 \u063A\u064A\u0631 \u0635\u062D\u064A\u062D.
-error.msg.send.invalid.rcps=\:\u062A\u062D\u0642\u0642 \u0645\u0646 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0645\u0633\u062A\u0644\u0645
+error.msg.send.invalid.rcps=\:\u062A\u062D\u0642\u0642 \u0645\u0646 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0645\u0633\u062A\u0644\u0645 {0}
 error.msg.send.no.rcps=\u0644\u0645 \u064A\u062A\u0645 \u062A\u062D\u062F\u064A\u062F \u0639\u0646\u0627\u0648\u064A\u0646 \u0627\u0644\u0645\u0633\u062A\u0644\u0645\u064A\u0646.
 error.msg.send.nok=\u0644\u0627 \u064A\u0645\u0643\u0646 \u0625\u0631\u0633\u0627\u0644 \u0627\u0644\u0631\u0633\u0627\u0644\u0629.
 error.msg.send.partially.nok=\u064A\u0645\u0643\u0646 \u0623\u0646 \u062A\u0631\u0633\u0644 \u0631\u0633\u0627\u0644\u062A\u0643 \u062C\u0632\u0626\u064A\u0627\u064B \u0641\u0642\u0637.
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_bg.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_bg.properties
index 2fe43807ce6849a83cd84c3278633ee93dc21a35..7fc2070567c4553f144aa16dd36819efa7247c88 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_bg.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_bg.properties
@@ -11,7 +11,7 @@ error.msg.content.nok=\u0412\u0430\u0448\u0435\u0442\u043E \u0441\u044A\u043E\u0
 error.msg.notconnectto.smtp=\u0412\u0440\u044A\u0437\u043A\u0430\u0442\u0430 \u0441 SMTP \u0441\u044A\u0440\u0432\u044A\u0440\u0430 <i>{0}</i> \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0435\u043D\u0430.
 error.msg.nousers=\u0418\u0437\u0431\u0440\u0430\u043D\u0430\u0442\u0430 \u0433\u0440\u0443\u043F\u0430 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u0438 \u043D\u044F\u043C\u0430 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u0446\u0438. \u0412\u0430\u0448\u0438\u044F\u0442 \u0438-\u043C\u0435\u0439\u043B \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0438\u0437\u043F\u0440\u0430\u0442\u0435\u043D.
 error.msg.send.553=\u0410\u0434\u0440\u0435\u0441\u044A\u0442 \u043D\u0430 \u043F\u043E\u0434\u0430\u0442\u0435\u043B\u044F \u0438/\u0438\u043B\u0438 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u044F \u0435 \u0433\u0440\u0435\u0448\u0435\u043D.
-error.msg.send.invalid.rcps=\u041F\u0440\u043E\u0432\u0435\u0440\u0435\u0442\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 (\u0430\u0434\u0440\u0435\u0441\u0438\u0442\u0435) \u043D\u0430 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u044F (\u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u0438\u0442\u0435)\:
+error.msg.send.invalid.rcps=\u041F\u0440\u043E\u0432\u0435\u0440\u0435\u0442\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 (\u0430\u0434\u0440\u0435\u0441\u0438\u0442\u0435) \u043D\u0430 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u044F (\u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u0438\u0442\u0435)\: {0}
 error.msg.send.no.rcps=\u041D\u0435 \u0441\u0430 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438 \u0430\u0434\u0440\u0435\u0441\u0438.
 error.msg.send.nok=\u0412\u0430\u0448\u0435\u0442\u043E \u0441\u044A\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0438\u0437\u043F\u0440\u0430\u0442\u0435\u043D\u043E.
 error.msg.send.partially.nok=\u0412\u0430\u0448\u0435\u0442\u043E \u0441\u044A\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0438\u0437\u043F\u0440\u0430\u0442\u0435\u043D\u043E \u0441\u0430\u043C\u043E \u0447\u0430\u0441\u0442\u0438\u0447\u043D\u043E.
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_cs.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_cs.properties
index c9bec026d0b7a5d2a7f804e25250a24b84240379..1934dbd34811d960237438c95151e2683077ca47 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_cs.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_cs.properties
@@ -9,7 +9,7 @@ error.msg.content.nok=Spr\u00E1va nebo jej\u00ED p\u0159edm\u011Bt jsou chybn\u0
 error.msg.notconnectto.smtp=Spojen\u00ED na  SMTP server <i>{0}</i> nemohlo b\u00FDt vytvo\u0159eno.
 error.msg.nousers=Vybran\u00E1 skupina nem\u00E1 \u017E\u00E1dn\u00E9 \u010Dleny. V\u00E1\u0161 e-mail nem\u016F\u017Ee b\u00FDt odesl\u00E1n.
 error.msg.send.553=Adresa p\u0159\u00EDjemce nebo odes\u00EDlatele je chybn\u00E1.
-error.msg.send.invalid.rcps=Zkontrolujte adresu p\u0159\u00EDjemce\:
+error.msg.send.invalid.rcps=Zkontrolujte adresu p\u0159\u00EDjemce\: {0}
 error.msg.send.no.rcps=Nedefinovan\u00E9 adresy.
 error.msg.send.nok=Zpr\u00E1va nebyla odesl\u00E1na.
 error.msg.send.partially.nok=Zpr\u00E1va odesl\u00E1na pouze \u010D\u00E1ste\u010Dn\u011B.
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_da.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_da.properties
index 7a05d4e5adb4c75a039168098afa14970a96371e..619b885288a89c94fb5088c46a959ceb7dbf0861 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_da.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_da.properties
@@ -9,7 +9,7 @@ error.msg.content.nok=Beskeden eller emnefeltet er ugyldigt.
 error.msg.notconnectto.smtp=En forbindelse til SMTP serveren <i>{0}</i> kunne ikke etableres.
 error.msg.nousers=Den valgte modtagergruppe har ingen medlemmer. Din e-mail kan ikke sendes.
 error.msg.send.553=Afsender's og/eller modtager adresse er ugyldig.
-error.msg.send.invalid.rcps=Check modtager adresse(r)\:
+error.msg.send.invalid.rcps=Check modtager adresse(r)\: {0}
 error.msg.send.no.rcps=Ingen adresser er defineret.
 error.msg.send.nok=Beskeden er ikke sendt.
 error.msg.send.partially.nok=Beskeden er delvist afsendt.
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_de.properties
index e1f9b96f113545ed6839eae3fa4474eef5410462..2e24e74f2f09e9c8d821349894d503544b907857 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_de.properties
@@ -14,7 +14,7 @@ error.msg.content.nok=Die Betreffzeile oder die Nachricht sind ung\u00FCltig.
 error.msg.notconnectto.smtp=Die Verbindung zum SMTP-Server <i>{0}</i> konnte nicht hergestellt werden.
 error.msg.nousers=Die gew\u00E4hlte Empf\u00E4ngergruppe enth\u00E4lt keine Teilnehmer. Die E-Mail kann nicht abgeschickt werden.
 error.msg.send.553=Absender- und/oder Empf\u00E4ngeradresse ist nicht korrekt.
-error.msg.send.invalid.rcps=\u00DCberpr\u00FCfen Sie die Empf\u00E4ngeradressen\:
+error.msg.send.invalid.rcps=\u00DCberpr\u00FCfen Sie die Empf\u00E4ngeradressen\: {0}
 error.msg.send.no.rcps=Es wurden keine Empf\u00E4ngeradressen definiert.
 error.msg.send.nok=Die Nachricht konnte nicht gesendet werden.
 error.msg.send.partially.nok=Die Nachricht konnte nur teilweise gesendet werden.
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_el.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_el.properties
index 851038a95c7a648c01fcda0bcf7fa53e7a5ebb06..532dc2c4ab1bb7169cbaeb8604b33e9b77194748 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_el.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_el.properties
@@ -13,7 +13,7 @@ error.msg.content.nok=\u03A4\u03BF \u03BC\u03AE\u03BD\u03C5\u03BD\u03B1 \u03AE \
 error.msg.notconnectto.smtp=\u0394\u03B5\u03BD \u03BC\u03C0\u03CC\u03C1\u03B5\u03C3\u03B5 \u03BD\u03B1 \u03B3\u03AF\u03BD\u03B5\u03B9 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 \u03BC\u03B5 \u03C4\u03BF\u03BD SMTP server <i>{0}</i>.
 error.msg.nousers=\u0397 \u03BF\u03BC\u03AC\u03B4\u03B1 \u03C0\u03B1\u03C1\u03B1\u03BB\u03B7\u03C0\u03C4\u03CE\u03BD \u03B4\u03B5\u03BD \u03C0\u03B5\u03C1\u03B9\u03AD\u03C7\u03B5\u03B9 \u03C3\u03C5\u03BC\u03BC\u03B5\u03C4\u03AD\u03C7\u03BF\u03BD\u03C4\u03B5\u03C2. \u03A4\u03BF e-mail \u03B4\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF \u03BD\u03B1 \u03C3\u03C4\u03B1\u03BB\u03B5\u03AF.
 error.msg.send.553=\u039B\u03B1\u03BD\u03B8\u03B1\u03C3\u03BC\u03AD\u03BD\u03B5\u03C2 \u03B4\u03B9\u03B5\u03C5\u03B8\u03CD\u03BD\u03C3\u03B5\u03B9\u03C2 \u03B1\u03C0\u03BF\u03C3\u03C4\u03BF\u03BB\u03AD\u03B1 \u03BA\u03B1\u03B9/\u03AE \u03C0\u03B1\u03C1\u03B1\u03BB\u03AE\u03C0\u03C4\u03B7.
-error.msg.send.invalid.rcps=\u0395\u03BB\u03AD\u03BE\u03C4\u03B5 \u03C4\u03B9\u03C2 \u03B4\u03B9\u03B5\u03C5\u03B8\u03CD\u03BD\u03C3\u03B5\u03B9\u03C2 \u03C4\u03C9\u03BD \u03C0\u03B1\u03C1\u03B1\u03BB\u03B7\u03C0\u03C4\u03CE\u03BD\:
+error.msg.send.invalid.rcps=\u0395\u03BB\u03AD\u03BE\u03C4\u03B5 \u03C4\u03B9\u03C2 \u03B4\u03B9\u03B5\u03C5\u03B8\u03CD\u03BD\u03C3\u03B5\u03B9\u03C2 \u03C4\u03C9\u03BD \u03C0\u03B1\u03C1\u03B1\u03BB\u03B7\u03C0\u03C4\u03CE\u03BD\: {0}
 error.msg.send.no.rcps=\u0394\u03B5\u03BD \u03BF\u03C1\u03AF\u03C3\u03C4\u03B7\u03BA\u03B1\u03BD \u03B4\u03B9\u03B5\u03C5\u03B8\u03CD\u03BD\u03C3\u03B5\u03B9\u03C2.
 error.msg.send.nok=\u03A4\u03BF \u03BC\u03AE\u03BD\u03C5\u03BC\u03B1 \u03B4\u03B5\u03BD \u03C3\u03C4\u03AC\u03BB\u03B8\u03B7\u03BA\u03B5.
 error.msg.send.partially.nok=\u039C\u03CC\u03BD\u03BF \u03AD\u03BD\u03B1 \u03BC\u03AD\u03C1\u03BF\u03C2 \u03C4\u03BF\u03C5 \u03BC\u03B7\u03BD\u03CD\u03BC\u03B1\u03C4\u03BF\u03C2 \u03C3\u03C4\u03AC\u03BB\u03B8\u03B7\u03BA\u03B5.
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_en.properties
index 24ce33743dabe5dbffbec43bd5b7b7ba7f6c4e5d..daceed472a78e382dd6d4c1692a2bcf4f3f01e99 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_en.properties
@@ -14,7 +14,7 @@ error.msg.content.nok=Your message or its subject is invalid.
 error.msg.notconnectto.smtp=A connection to the SMTP server <i>{0}</i> could not be established.
 error.msg.nousers=The selected recipient group has no participants. Your e-mail cannot be sent.
 error.msg.send.553=Sender's and/or recipient's address incorrect.
-error.msg.send.invalid.rcps=Check the recipient's address(es)\:
+error.msg.send.invalid.rcps=Check the recipient's address(es)\: {0}
 error.msg.send.no.rcps=No addressees defined.
 error.msg.send.nok=Your message could not be sent.
 error.msg.send.partially.nok=Your message could only be sent partially.
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_es.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_es.properties
index bb931043966d955f8fb3e300032ffa93d0807502..0ba212017340e6d83143bc9acdf2bf25ae8c4312 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_es.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_es.properties
@@ -11,7 +11,7 @@ error.msg.content.nok=El mensaje o el sujeto no es v\u00E1lido.
 error.msg.notconnectto.smtp=Error\: La conexi\u00F3n con el servidor SMTP <i>{0}</i> pudo ser establecido.
 error.msg.nousers=El grupo de destinatarios seleccionado no tiene participantes. Tu e-mail no puede ser enviado.
 error.msg.send.553=Direcci\u00F3n incorrecta de remitente y/o destinatario
-error.msg.send.invalid.rcps=Comprueba las direcciones de destinatarios\:
+error.msg.send.invalid.rcps=Comprueba las direcciones de destinatarios\: {0}
 error.msg.send.no.rcps=No hay direcci\u00F3n definida.
 error.msg.send.nok=El mensaje no ha sido enviado.
 error.msg.send.partially.nok=El mensaje ha sido enviado s\u00F3lo parcialmente.
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_fa.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_fa.properties
index ae7e50097465b4e0520f85c000be599af416aa1c..6acba745bad4ce6d446d908752f0b7d4db4ae541 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_fa.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_fa.properties
@@ -9,7 +9,7 @@ error.msg.content.nok=The message or its subject is invalid.
 error.msg.notconnectto.smtp=A connection to the SMTP server <i>{0}</i> could not be established.
 error.msg.nousers=The selected recipient group has no participants. Your e-mail cannot be sent.
 error.msg.send.553=Sender's and/or recipient's address incorrect.
-error.msg.send.invalid.rcps=Check the recipient's address(es)\:
+error.msg.send.invalid.rcps=Check the recipient's address(es)\: {0}
 error.msg.send.no.rcps=No addressees defined.
 error.msg.send.nok=The message was not sent.
 error.msg.send.partially.nok=The message was sent only partially.
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_fr.properties
index d194c81579a10f0fc172186b65baa7f5af5a189d..18261af49337f68750299485776cd8009bf2003e 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_fr.properties
@@ -14,7 +14,7 @@ error.msg.content.nok=L'objet ou le message n'est pas valable.
 error.msg.notconnectto.smtp=La connection au serveur SMTP <i>{0}</i> n'a pas pu \u00EAtre \u00E9tablie.
 error.msg.nousers=Le groupe de r\u00E9cepteurs s\u00E9lectionn\u00E9 ne contient aucun participant. Le message ne peut pas \u00EAtre envoy\u00E9.
 error.msg.send.553=L'adresse de l'exp\u00E9diteur et/ou du destinataire n'est pas correcte. 
-error.msg.send.invalid.rcps=V\u00E9rifier l'adresse du destinataire. 
+error.msg.send.invalid.rcps=V\u00E9rifier l'adresse courriel du ou des destinataires suivants:  {0}
 error.msg.send.no.rcps=Aucun destinataire n'a \u00E9t\u00E9 d\u00E9finie.
 error.msg.send.nok=Le message n'a pas pu \u00EAtre envoy\u00E9. 
 error.msg.send.partially.nok=Le message n'a pu \u00EAtre envoy\u00E9 que partiellement.
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_it.properties
index d7f8b25788806735f161150b6834bc1e1da69998..a1d66b98050fd90d93548499a81ed070748a4866 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_it.properties
@@ -13,7 +13,7 @@ error.msg.content.nok="Soggetto" messaggio non valido.
 error.msg.notconnectto.smtp=La connessione al server SMTP <i>{0}</i> non \u00E8 stata stabilita.
 error.msg.nousers=Il gruppo di destinatari selezionato non contiene partecipanti. La e-mail non pu\u00F2 essere inviata.
 error.msg.send.553=L'indirizzo del mittente e/o del destinatario non \u00E8 corretto.
-error.msg.send.invalid.rcps=Controlli gli indirizzi dei destinatari, p.f.\:
+error.msg.send.invalid.rcps=Controlli gli indirizzi dei destinatari, p.f.\: {0}
 error.msg.send.no.rcps=Non \u00E8 stato definino alcun indirizzo per i destinatari.
 error.msg.send.nok=Il messaggio non ha potuto essere spedito.
 error.msg.send.partially.nok=Il messaggio \u00E8 stato spedito solo parzialmente.
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_jp.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_jp.properties
index 842349e1f230c538f3fad86b03ec3557f1484d4c..bab3ab3a85581ab6276fdd822b8af011ad447159 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_jp.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_jp.properties
@@ -13,7 +13,7 @@ error.msg.content.nok=\u3042\u306A\u305F\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u30
 error.msg.notconnectto.smtp=SMTP\u30B5\u30FC\u30D0 <i>{0}</i> \u3078\u306E\u63A5\u7D9A\u3092\u78BA\u7ACB\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002
 error.msg.nousers=\u9078\u629E\u3055\u308C\u305F\u53D7\u4FE1\u30B0\u30EB\u30FC\u30D7\u306B\u306F\u3001\u53C2\u52A0\u8005\u304C\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u3042\u306A\u305F\u306EE\u30E1\u30FC\u30EB\u3092\u9001\u4FE1\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002
 error.msg.send.553=\u9001\u4FE1\u8005\u307E\u305F\u306F\u53D7\u4FE1\u8005\u306E\u30A2\u30C9\u30EC\u30B9\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093\u3002
-error.msg.send.invalid.rcps=\u53D7\u4FE1\u8005\u306E\u30A2\u30C9\u30EC\u30B9\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
+error.msg.send.invalid.rcps=\u53D7\u4FE1\u8005\u306E\u30A2\u30C9\u30EC\u30B9\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 {0}
 error.msg.send.no.rcps=\u30A2\u30C9\u30EC\u30B9\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
 error.msg.send.nok=\u3042\u306A\u305F\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u9001\u4FE1\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002
 error.msg.send.partially.nok=\u3042\u306A\u305F\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306F\u3001\u4E00\u90E8\u306E\u307F\u9001\u4FE1\u3055\u308C\u307E\u3057\u305F\u3002
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_lt.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_lt.properties
index 0ef73c4ffcfb0b7c4d1dc6915b3331d10bab6a4d..16346291b14b6c6b5b618b34e7fd0318748ecaec 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_lt.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_lt.properties
@@ -9,7 +9,7 @@ error.msg.content.nok=Neteisinga \u017Einut\u0117 arba jos pavadinimas
 error.msg.notconnectto.smtp=Negalima prisijungti prie  SMTP serverio <i>{0}</i>.
 error.msg.nousers=Pasirinkta grup\u0117 neturi dalyvi\u0173. J\u016Bs\u0173 el. lai\u0161kas negali b\u016Bti i\u0161si\u0173stas.
 error.msg.send.553=Siunt\u0117jo ar/ir gav\u0117jo adresas neteisingas
-error.msg.send.invalid.rcps=Patikrinkite gav\u0117jo adres\u0105 (-us)
+error.msg.send.invalid.rcps=Patikrinkite gav\u0117jo adres\u0105 (-us) {0}
 error.msg.send.no.rcps=Nenurodyti adresai
 error.msg.send.nok=\u017Dinut\u0117s nepavyko i\u0161si\u0173sti
 error.msg.send.partially.nok=I\u0161si\u0173sta tik dalis \u017Einut\u0117s
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_nl_NL.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_nl_NL.properties
index aa89d7f8358c8d8156e4220349395c6a935b0b16..5d3051880bafb4367bbc68da62609cb21c281681 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_nl_NL.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_nl_NL.properties
@@ -13,7 +13,7 @@ error.msg.content.nok=Uw bericht of zijn onderwerp is ongeldig.
 error.msg.notconnectto.smtp=Er kon geen connectie naar de SMTP server <i>{0}</i> vastgesteld worden.
 error.msg.nousers=De geselecteerde ontvangersgroep heeft geen cursisten. Uw e-mail kan niet verzonden worden.
 error.msg.send.553=Het adres van de zender en/of ontvanger is niet correct.
-error.msg.send.invalid.rcps=Kijk het adres van de ontvanger(s) na\:
+error.msg.send.invalid.rcps=Kijk het adres van de ontvanger(s) na\: {0}
 error.msg.send.no.rcps=Geen adressen gedefinieerd.
 error.msg.send.nok=Uw bericht kon niet verzonden worden.
 error.msg.send.partially.nok=Uw bericht kon enkel gedeeltelijk verzonden worden.
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pl.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pl.properties
index 40e49f08720024125fa402a490736173ef9c6f63..8a28658bef55d74660b9ec7c64d9cafb67e2edb2 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pl.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pl.properties
@@ -13,7 +13,7 @@ error.msg.content.nok=Wiadomo\u015B\u0107 lub jej tytu\u0142 jest nieprawid\u014
 error.msg.notconnectto.smtp=Po\u0142\u0105czenie z serwerem SMTP <i>{0}<i> nie zosta\u0142o nawi\u0105zane.
 error.msg.nousers=Wybrana grupa odbiorc\u00F3w nie zawiera \u017Cadnych cz\u0142onk\u00F3w. E-mail nie mo\u017Ce zosta\u0107 wys\u0142any.
 error.msg.send.553=Adres odbiorcy i/lub nadawcy nieprawid\u0142owy.
-error.msg.send.invalid.rcps=Sprawd\u017A poprawno\u015B\u0107 adres\u00F3w.
+error.msg.send.invalid.rcps=Sprawd\u017A poprawno\u015B\u0107 adres\u00F3w. {0}
 error.msg.send.no.rcps=Nie zdefiniowano adres\u00F3w.
 error.msg.send.nok=Wiadomo\u015B\u0107 nie zosta\u0142a wys\u0142ana.
 error.msg.send.partially.nok=Wiadomo\u015B\u0107 zosta\u0142a tylko cz\u0119\u015Bciowo wys\u0142ana.
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pt_BR.properties
index bae0eea64cb84403dc234b8e4465597d88f06f35..6eecb41d1d63a184c47f5883b6272cb56246a460 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pt_BR.properties
@@ -14,7 +14,7 @@ error.msg.content.nok=A mensagem ou seu assunto \u00E9 inv\u00E1lido.
 error.msg.notconnectto.smtp=Uma conex\u00E3o ao servidor SMTP <i>{0}</i> n\u00E3o pode ser estabelecida.
 error.msg.nousers=O grupo receptor selecionado n\u00E3o tem participantes. Seu e-mail n\u00E3o pode ser enviado.
 error.msg.send.553=Endere\u00E7o do remetente e/ou do receptor incorreto.
-error.msg.send.invalid.rcps=Checar o endere\u00E7o(s) do receptor\:
+error.msg.send.invalid.rcps=Checar o endere\u00E7o(s) do receptor\: {0}
 error.msg.send.no.rcps=Nenhum endere\u00E7o definido.
 error.msg.send.nok=A mensagem n\u00E3o foi enviada.
 error.msg.send.partially.nok=A mensagem foi enviada somente parcialmente.
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pt_PT.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pt_PT.properties
index e0e6132970bc414d3d4bef4227b9e05f749950cb..ac50531095e96f62f1a6f25d61c3de2800e623f5 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pt_PT.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pt_PT.properties
@@ -9,7 +9,7 @@ error.msg.content.nok=A mensagem ou seu assunto \u00E9 inv\u00E1lido.
 error.msg.notconnectto.smtp=Uma conex\u00E3o ao servidor SMTP <i>{0}</i> n\u00E3o pode ser estabelecida.
 error.msg.nousers=O grupo receptor selecionado n\u00E3o tem participantes. Seu e-mail n\u00E3o pode ser enviado.
 error.msg.send.553=Endere\u00E7o do remetente e/ou do receptor incorreto.
-error.msg.send.invalid.rcps=Checar o endere\u00E7o(s) do receptor\:
+error.msg.send.invalid.rcps=Checar o endere\u00E7o(s) do receptor\: {0}
 error.msg.send.no.rcps=Nenhum endere\u00E7o definido.
 error.msg.send.nok=A mensagem n\u00E3o foi enviada.
 error.msg.send.partially.nok=A mensagem foi enviada somente parcialmente.
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_ru.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_ru.properties
index 0577d827dac71a9d573889f9fae0cd9bfdbc71eb..3d01f13dbb9ac7aae728749cb5a151e800cc5648 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_ru.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_ru.properties
@@ -11,7 +11,7 @@ error.msg.content.nok=\u0421\u0442\u0440\u043E\u043A\u0430 \u0442\u0435\u043C\u0
 error.msg.notconnectto.smtp=\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0431\u044B\u043B\u043E \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0432\u044F\u0437\u044C \u0441 SMTP \u0441\u0435\u0440\u0432\u0435\u0440\u043E\u043C <i>{0}</i>.
 error.msg.nousers=\u0412\u044B\u0431\u0440\u0430\u043D\u043D\u0430\u044F \u0433\u0440\u0443\u043F\u043F\u0430 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u0435\u0439 \u043D\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u0430\u0431\u043E\u043D\u0435\u043D\u0442\u043E\u0432. \u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C e-mail.
 error.msg.send.553=\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u044B\u0439 \u0430\u0434\u0440\u0435\u0441 \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u0435\u043B\u044F \u0438/\u0438\u043B\u0438 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u044F.
-error.msg.send.invalid.rcps=\u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u0435\u0439\:
+error.msg.send.invalid.rcps=\u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u0435\u0439\: {0}
 error.msg.send.no.rcps=\u0410\u0434\u0440\u0435\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u0435\u0439 \u043D\u0435 \u0431\u044B\u043B\u0438 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u044B. 
 error.msg.send.nok=\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0431\u044B\u043B\u043E \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C. 
 error.msg.send.partially.nok=\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0431\u044B\u043B\u043E \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u0447\u0430\u0441\u0442\u0438\u0447\u043D\u043E. 
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_sq.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_sq.properties
index e81b3ed25d9a87564d310ff2510939cfffdc4934..53f7431ab06401787b6df8ec8fcc39c424f2fd82 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_sq.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_sq.properties
@@ -9,7 +9,7 @@ error.msg.content.nok=Porosia apo subjekti i saj \u00EBsht\u00EB e pavlefshme.
 error.msg.notconnectto.smtp=Nj\u00EB lidhje me SMTP serverin <i>{0}</i> nuk mund t\u00EB vendoset.
 error.msg.nousers=Grupi i marr\u00EBsve t\u00EB p\u00EBrzgjedhur nuk ka pjes\u00EBmarr\u00EBs. E-posta juaj nuk mund t\u00EB d\u00EBrgohet.
 error.msg.send.553=Adresa e d\u00EBrguesit dhe/apo marr\u00EBsit nuk jan\u00EB korrekt.
-error.msg.send.invalid.rcps=Kontrollo adres\u00EBn e marr\u00EBs-it/ve\:
+error.msg.send.invalid.rcps=Kontrollo adres\u00EBn e marr\u00EBs-it/ve\: {0}
 error.msg.send.no.rcps=Nuk ka adresa t\u00EB paracaktuara.
 error.msg.send.nok=Porosia nuk \u00EBsht\u00EB d\u00EBrguar.
 error.msg.send.partially.nok=Porosia \u00EBsht\u00EB d\u00EBrguar vet\u00EBm pjes\u00EBrisht.
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_zh_CN.properties
index 94b76f00158536e88c3b023ca5ee0e53707c51a6..8bfe787bce5f7ae84daa426f3d80a786962ae155 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_zh_CN.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_zh_CN.properties
@@ -12,7 +12,7 @@ error.msg.content.nok=\u6D88\u606F\u6216\u4E3B\u9898\u65E0\u6548\u3002
 error.msg.notconnectto.smtp=\u65E0\u6CD5\u5EFA\u7ACB\u548CSMT\u670D\u52A1\u5668<i>{0}</i> \u7684\u8FDE\u63A5\u3002
 error.msg.nousers=\u5DF2\u9009\u7684\u6536\u4EF6\u4EBA\u7EC4\u65E0\u53C2\u4E0E\u8005\uFF0C\u65E0\u6CD5\u53D1\u9001\u4F60\u7684e-mail\u3002
 error.msg.send.553=\u53D1\u9001\u8005/\u6216\u6536\u4EF6\u4EBA\u5730\u5740\u9519\u8BEF\u3002
-error.msg.send.invalid.rcps=\u6838\u5BF9\u6536\u4EF6\u4EBA\u5730\u5740\uFF1A
+error.msg.send.invalid.rcps=\u6838\u5BF9\u6536\u4EF6\u4EBA\u5730\u5740\uFF1A {0}
 error.msg.send.no.rcps=\u672A\u8BF4\u660E\u5730\u5740\u3002
 error.msg.send.nok=\u672A\u53D1\u9001\u8BE5\u6D88\u606F\u3002
 error.msg.send.partially.nok=\u53EA\u7ED9\u90E8\u5206\u6210\u5458\u53D1\u9001\u4E86\u8BE5\u6D88\u606F\u3002
diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_zh_TW.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_zh_TW.properties
index 249f9b34dc08e1711e4be6bab7d7ff807eec0037..de5c9335dc95a3aef41dea2360fbcdea8c31bf0d 100644
--- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_zh_TW.properties
+++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_zh_TW.properties
@@ -11,7 +11,7 @@ error.msg.content.nok=\u60A8\u7684\u8A0A\u606F\u6216\u5B83\u7684\u4E3B\u65E8\u71
 error.msg.notconnectto.smtp=\u7121\u6CD5\u5EFA\u7ACB\u5230 SMTP \u4F3A\u670D\u5668 <i>{0}</i>\u7684\u9023\u7DDA\u3002
 error.msg.nousers=\u9078\u53D6\u7684\u6536\u4EF6\u4EBA\u7FA4\u7D44\u6C92\u6709\u53C3\u8207\u8005\u3002\u60A8\u7684\u96FB\u5B50\u90F5\u4EF6\u7121\u6CD5\u767C\u9001\u3002
 error.msg.send.553=\u5BC4\u4EF6\u4EBA\u548C/\u6216\u6536\u4EF6\u4EBA\u7684\u96FB\u5B50\u90F5\u4EF6\u5730\u5740\u4E0D\u6B63\u78BA\u3002
-error.msg.send.invalid.rcps=\u6AA2\u67E5\u6536\u4EF6\u4EBA\u7684\u96FB\u5B50\u90F5\u4EF6\u5730\u5740\uFF1A
+error.msg.send.invalid.rcps=\u6AA2\u67E5\u6536\u4EF6\u4EBA\u7684\u96FB\u5B50\u90F5\u4EF6\u5730\u5740\uFF1A {0}
 error.msg.send.no.rcps=\u6C92\u6709\u96FB\u5B50\u90F5\u4EF6\u5730\u5740\u88AB\u5B9A\u7FA9\u3002
 error.msg.send.nok=\u60A8\u7684\u8A0A\u606F\u7121\u6CD5\u767C\u9001\u3002
 error.msg.send.partially.nok=\u60A8\u7684\u8A0A\u606F\u53EA\u80FD\u88AB\u90E8\u5206\u767C\u9001\u3002