echo $begrüßung;
Wo dachtest du denn, willst du das \r\n\r\n anfügen? An die vom Nutzer gesendeten Daten? :-)
Nein, am Ende des Mailheaders. Oder wie sollte ich diesen Kommentar deuten?
Beispielsweise als nicht richtig. Wenn mail() nicht von selbst die Header mit einer Leerzeile abschließen würde, wäre es fehlerhaft.
Ich habe mal etwas im Quelltext von mail.c gelesen. Die entscheidenden Zeilen sind (zu finden im letzten Viertel):
fprintf(sendmail, "To: %s\n", to);
fprintf(sendmail, "Subject: %s\n", subject);
if (headers != NULL) {
fprintf(sendmail, "%s\n", headers);
}
fprintf(sendmail, "\n%s\n", message);
Hier siehst du, wie die Parameter zusammengesetzt und an sendmail gegeben werden. Du erkennst sicherlich auch, dass message (dritter Parameter) ein Extra-\n bekommt und dass to (erster), subject (zweiter) und headers (vierter parameter) alle zum Header gehören. Ebenso sicherlich die Sinnlosigkeit des Userkommentars.
Und kann man irgendwie den dritten Parameter vorzeitig beenden, um zusätzliche Mailheader einzuschmuggeln? (Daher überhaupt meine Frage bzgl. "\r\n".)
Sollte sich nun geklärt haben, oder?
Die Reihenfolge der Parameter von mail() sind dem Anwender angepasst. To, Subject und Message brauchts immer. Headers kann weggelassen werden, deswegen steht es hintendran.
echo "$verabschiedung $name";