When setting content_type text/html for emails, the user still has to code the part of html corresponding to the "pagelayout" template.
By default this "email-pagelayout" does not exist, and if the developer takes as base the existing text-only template, he might forget to create a full html page, but simply create the html page corresponding to the node view / module output.
Moreover, to streamline development, a mail_header and mail_footer template can be developed to be used as inclusions for all outgoing mails, but this works the opposite of the standard template process.
I think something like the following would be an elegant improvement:
- add a new ini setting, where you describe the name if the email pagelayout template to be set for every possible email content-type
- create those templates (pagelayout_mail_html and pagelayout_mail_plaintext and leave them empty by default
- add the necessary code in the mail class so that the mail pagelayout template benefits of all the variables that are available in the std pagelayout tpl
It would be good if this also suggested the usage of the html "base" tag to developers for their email templates, as it can help solve many headaches using full/relative urls for hrefs and images