public void sendMessage(MessageDTO messageDTO) throws DataProcessingException {
		MailBox sender = mailBoxDAO.find(messageDTO.getSender());
		if (sender == null) {
			logger.warn("Mailbox with email " + messageDTO.getSender() + " does not exist");
			throw new DataProcessingException(ExceptionType.mailBoxDoesNotExist);
		}

		MailBox receiver = null;
		if (messageDTO.getReceiver() != null) {
			receiver = mailBoxDAO.find(messageDTO.getReceiver());
		}

		Message message = new Message(true, sender, receiver, messageDTO.getTheme(), messageDTO.getMessageBody());

		if (receiver == null) {
			logger.warn("Mailbox with email " + messageDTO.getReceiver() + " does not exist");
			save(message);
			logger.info("Message successfully saved in draft messages of" + sender.getEmail());
			throw new DataProcessingException(ExceptionType.wrongMessageReceiverEmail);
		}

		send(message);
		logger.info("Message successfully sent from " + messageDTO.getSender() + " to " + messageDTO.getReceiver());
	}