# E-Mails senden.
@mail($an,$betreff,$text,"From: ".$email);
Vorneweg: Fehlermeldungen dienen Deiner Information, es ist daher eher unklug, sie mit @ zu unterdrücken. Womöglich tappst Du im Moment nur deshalb im Dunkeln, weil die betreffende Meldung nicht zu sehen ist.
Aber davon unabhängig, bei mail() ist es nicht möglich/notwendig, eine Authentifizierung durchzuführen.
Entferne erstmal sämtliche Unterdrückungsklammeraffen, gibt es dann keine Erleuchtung, solltest Du klein anfangen; richte ein Testskript mit folgendem Inhalt ein:
<?php
mail("deineadresse@example.com", "Betreff" , "Ein Text");
?>
Kommt weder eine Fehlermeldung, noch die erwünschte E-Mail, muss sich Dein Hoster drum kümmern, weil das dann wirklich in seine Zuständigkeit fällt. Nerv' ihn zur Not solange, bis er Abhilfe oder eine verständliche Erklärung bringt. Wenn er wieder mit seinem Authentifizierungskram kommt, soll er Dir, basierend auf obigem Testskript, ein konkretes Beispiel geben.
Kommt die E-Mail hingegen bei Dir an, liegt der Fehler bei Dir. Baue dann Stück für Stück auf obigen drei Zeilen die Formularverarbeitung neu auf.
Hier und da ist es grundsätzlich auch immer hilfreich, die Inhalte der verwendeten Variablen mit var_dump() auszugeben. Es kommt nicht selten vor, dass man etwas bestimmtes voraussetzt, dies aber gar nicht eintrifft, der Fehler also nicht in der Variablenverarbeitung, sondern schon vorher in der -zuweisung liegt.