Hi,
try to remove the line
$headers .= "To: $email\r\n";
This will be done by PHP automatically using the $to parameter.
Some mail server might refuse to accept the mail if the To: header is set twice (I'm not really sure if this is the truth but just to make sure don't use it twice).
Also make sure that $to just contains an email address and not something like
Recepient name <email>
Also try if the mails are delivered successfully if you change the mail type to plain text.
I think the email address mapping is not neccessary in this case as long as you use a valid From: header in your mails.
If you don't use a From header php will use the web server user's mail address instead (at least on unix systems) which often is e.g.
www@host.domain.com
Often this host.domain.suffix can't be resolved externally so mail servers might refuse to deliver the mail.
The solution to this is to tell the mail delivery program to map e.g.
www@host.domain.com to info@domain.com
Thomas