If you have to create and send an email automatically, the following method might help.
I have not tested it with HTML yet, but will do that at some point.
The method requires MS Outlook to be installed, since it is automating Outlook in order to create an email with attachment.
The below method will not automatically send an email, but just display the created result. This way a user can decide, if he really wants to send an email or not allowing corrections.
If you want to send an email immediatly after creating it, just use the method "Send" instead of "Display" from the MailItem object.
This method uses late binding, therefore no reference of the Outlook API is needed.
However, Outlook has to be installed or the function will cause an exception and return False.
I have only tested it for Outlook 2007, but it should work for all versions from 2000.
Below is an example on how to call the method displayEmailWithAttachment.
Use the vba constant vbCrLf in order to add line breaks to an email text.
If your using HTML, it is a different thing of course but as said I did not test the above with HTML yet.