Pour aller un peu plus loin dans la réflexion, un mail format "html" est un peu plus complexe et il y a des détails auxquels il faut faire attention.
Effectivement, tout reste basé sur la fonction mail() de php.
Le contenu d'un mail html doit être codé... en html. Le principe est simple :
Tu créés une page html complète <html><head></head><body>contenu texte mis en forme</body></html>, qui devient le contenu.
Contrairement aux recommandations "en ligne", pour améliorer la qualité du formatage visuel du mail, tu peux utiliser les tableaux pour la mise en page. Le full bloc passe très mal d'après mes tests.
Un autre aspect important, pour tout ce qui concerne la mise en page du document. Il est préférable, voire indispensable, de ne pas utiliser de css externes, mais d'utiliser des styles "en ligne" :
ex : <p style="margin:1px; color:#fff;">un paragraphe</p> (et non pas un style inclus par css)
Si tu utilises des images, optimises les au maximum, pour que le mail soit le plus léger possible.
Après, c'est au début des heures de tests pour vérifier le rendu visuel dans un certain nombre de navigateurs, de boite mails (yahoo, laposte, gmail,...), et de softwares (thunderbird, outlook,...) et comprendre quelles propriétés passent, lesquelles posent problème...
Enfin, toujours proposer une alternative "texte" du mail html, car certaines boites et outils n'acceptent pas le format html pour les mails. Dans ce cas, il faut envoyer un mail dans les deux formats html et text... regarde du coté des classes mails déjà existantes, regarde les spécifications de codage du mail pour comprendre et faire fonctionner.
Voilà pour toi, au travail :o)