acá esta todas las cabeceras que necesitas para enviar HTML con la función mail de PHP y otras mas que te pueden ayudar
//para el envío en formato HTML
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
//dirección del remitente
$headers .= "From: Miguel Angel Alvarez <
[email protected]>\r\n";
//dirección de respuesta, si queremos que sea distinta que la del remitente
$headers .= "Reply-To:
[email protected]\r\n";
//ruta del mensaje desde origen a destino
$headers .= "Return-path:
[email protected]\r\n";
//direcciones que recibián copia
$headers .= "Cc:
[email protected]\r\n";
//direcciones que recibirán copia oculta
$headers .= "Bcc:
[email protected],
[email protected]\r\n";
En cuanto a lo que quieres yo lo tengo implementado en un proyecto que estoy haciendo y lo que hago es generar un código aleatorio de X cantidad de caracteres entre minúsculas y mayúsculas y lo guardo en la base de datos.
Envío ese código como parámetro URL ($_GET) y cuando el usuario presiona el link en el mensaje de correo simplemente lo tomo y lo comparo con la base de datos a ver si es el mismo y si lo es simplemente lo activo.