code: @Override
  	public void setContent(final Email email, final Content content) throws ContentHandlerException {
  		if (email == null) {
  			throw new IllegalArgumentException("[email] cannot be null");
  		}
  		if (content == null) {
  			throw new IllegalArgumentException("[content] cannot be null");
  		}
  
  		if (content instanceof StringContent) {
  			final String contentStr = ((StringContent) content).getContent();
  
  			try {
  				final String mime = mimeProvider.detect(contentStr).toString();
  				LOG.debug("Email content {} has detected type {}", content, mime);
  				setMimeContent(email, contentStr, mime);
  			} catch (MimeTypeDetectionException e) {
  				throw new ContentHandlerException("Unable to set the email content", e);
  			}
  		} else {
  			throw new IllegalArgumentException("This instance can only work with StringContent instances, but was passed " + content.getClass().getSimpleName());
  		}
  
  	}
docs: Reads the content and adds it into the email. This method is expected to
  update the content of the {@code email} parameter.
  
  While the method signature accepts any {@link Content} instance as
  parameter, the method will fail if anything other than a
  {@link StringContent} is provided.
  
  @param email
  the email to put the content in
  @param content
  the unprocessed content
  @throws ContentHandlerException
  the handler is unable to add the content to the email
  @throws IllegalArgumentException
  the content provided is not of the right type