When you want to send a simple email from a Drupal template file, you can avoid creating a custom module or try to understand how drupal_mail() works. Sometimes it is just easier to fake a module call.

All you need is this simple code
$from = "website@examle.com";
$to = "user@domain.com";
$subject = "Message from the web";
$body = "Hello";

$fake_module = 'foo'; // or whatever you want
$fake_key = 'bar'; // or whatever you want

$message = array(
    'id' => $fake_module . '_' . $fake_key,
    'from' => $from,
    'to' => $to,
    'subject' => $subject,
    'body' => $body,
    'headers' => array(
        'Return-Path' => $from,
        'MIME-Version' => '1.0',
        'Content-Transfer-Encoding' => '8Bit',
        'Content-Type' => 'text/plain; charset=UTF-8;',
        // you can add here as many headers as you need

// Let's create a system object simulating a real module
$system = drupal_mail_system($fake_module, $fake_key);

if ($system->mail($message)) {
    print "Email sent!";
} else {
    // Something went wrong...

Basically, we are simulating the call of drupal_mail_system()->mail() from a fake module. With this method we avoid hook_mail_alter() and you can put this code whatever you want, even in a template file.

Just remember that if you need the email to be HTML, you have to change the Content-Type header to:

'Content-Type' => 'text/html; charset=UTF-8;'