$head =
"MIME-Version: 1.0\r\n" .
"Content-Type: text/plain; charset=$charset\r\n" .
"Content-Transfer-Encoding: 8bit";
Ładnie to tak zmienną do stringa wpychać na siłę? Powyższe zamień na:
$head =
"MIME-Version: 1.0\r\n" .
"Content-Type: text/plain; charset=".$charset."\r\n" .
"Content-Transfer-Encoding: 8bit\r\n";
W paru innych miejscach wstawiasz zmienne w ten sam sposób. Co do Twojego pytania natomiast, czytałeś może
http://pl2.php.net/manual/en/book.mail.php ?
Ażeby wywołać twoją funkcję proponowałbym wrzucić do switcha.
switch($_GET['q']) {
case 'funkcja'
// tu sama funkcja
break;
}
Wtedy w formularzu jako action ustawiasz:
<?php echo $_SERVER['PHP_SELF'];?>?q=funkcjaPole subject będziesz mógł jeżeli zastosujesz się do rad kolegów powyżej. Tworzysz dodatkowe pole input, o nazwie np. temat.
<input type="text" name="temat" id="temat" />
Aby odwołać się do niego w php:
$subject = $temat;
Co do usuwania polskich znaków, można by to zrobić w php i nieco prościej.
http://php.net/manual/en/function.chr.php, a dla pewności podawać kody ASCII znaków do zastąpienia.