It seems your problem is a simple syntax error: the xhtml content in question should be placed within the <#part ...> <#/part> tag pair inserted by mml-insert-part in order to be interpreted as anything other than plaintext.
In the end the solution that worked for me was to put the entire email in a DIV tag.
(insert "<div style=\"font-family:Georgia,serif\">")
It's probably easier to insert your own stylesheet in the head of your HTML mail instead of replacing the default settings:
(lambda () (insert (concat "<head>\n<style>\n"
The issue described by the original poster is caused by using org-mime-htmlize on a non-interactive basis -- i.e., the single argument is mandatory (when using said function on a non-interactive basis), rather than optional. The solution is to rewrite the function so that the argument is optional:
(defun org-mime-htmlize (&...
It looks to me like it's impossible to mark on a line-by-line basis, allowing you to leverage the already existing message-yank-prefix settings.
So I went back and reread the mu4e and message source code to see what else I could piggy-back off.
I have a solution below providing you don't need separate formatting for example blocks - for example using org-...
I was looking for the place in the documentation where it might say explicitly how to use it inside email buffers, but it doesn't. In retrospect you could guess it, since the documentation tells you to add hooks to mml mode, but there's still some guesswork involved. The quote below is from the documentation embedded in org-mime.el. Again, not exactly ...
Actually the comment of @lawlist helped me to figure out that you just need to "rewind" your point, once you changed the style of an element like so:
(org-mime-change-element-style "ul.org-ul li" "font-family: Georgia,serif;")