Alors :
1) Pour le mail en html, tu trouveras une astuce sur ce site, dans la rubrique mail.
2) Le coup du formulaire avec l'upload de fichier.
Theoriquement, dans ton formulaire, tu as un champ de type file qui porte un certain nom, disons fichier.
Ensuite, dans la page ou tu traite ton formulaire, il suffit de faire un :
copy($fichier,mon_fichier.gif);
par exemple.
Et la tu auras dans ton repertoire courant un fichier de nom mon_fichier.gif qui correspondra au fichier que tu as uplaodé.
Mais attention, avant d'utiliser cette fonction, de nombreux tests sont necessaires pour savoir de quel type de fichier il s'agit.
Imagine que le gars upload un .zip, et que toi, tu renommes ce fichier en mon_fichier.gif : ca va merder
En conclusion : tests sur le fichier uploadé, et ensuite, le copy.