Hallo!
Warum es nicht geht, kann ich auch erst mal nicht sagen. Mir ist aber einiges aufgefallen, was ich noch loswerden will.
{
open (MAIL, "|$mailprog $member")|| die "Can't open $mailprog!\n";
Du öffnest das Mailprog gleich mit dem Mail-Empfänger und beschreibst weiter unten nochmal das To: Feld. Besser wäre es (so es sich um sendmail handelt), den Aufruf mit dem Parameter -t zu machen. Ist in Deinem Fall nicht nötig, weil der Inhalt von $member offensichtlich nicht per Formular gesetzt werden kann. Ist bei ungeparsten Eingaben ein großes Risiko.
Also so:
open (MAIL, "|$mailprog -t")|| die "Can't open $mailprog!\n";
print MAIL "Return-Path:<Meister@SchmuckundUhren.de>\n";
print MAIL "From:$FORM{'von'}\n";
print MAIL "Subject:$FORM{'subject'}\n";
print MAIL "To:$member\n";
print MAIL "$FORM{'text'}\n\n";
Und Du beendest den Header nicht richtig. Header und Body werden mit \n\n getrennt, das kommt bei Dir erst am Ender der Mail.
close (MAIL);
$x++;
}
Gruß Frank