dobra: suchen/ersetzen in Schleife

Beitrag lesen

Hallo,

Mein Problem:
Der Mailtext ($kdmailtext) wird aus einer .cfg Datei ausgelesen, die mail-Adresse, Anrede, Name usw. aus der DB.
Im Mailtext sollen jetzt -ANREDE- und -NAME- durch die Variablen aus der DB ersetzt werden.

Mein Versuch (gekürzte Form)

		my $sql2 = qq |SELECT ANREDE, NAME FROM $dbtableuser WHERE GESENDET = 0  |;  
		my $read = ssp::readSQLData($sql2, "anrede", "name" );  
		if ($read > 0) {  
			for (my $i = 0; $i < $read; $i++) {					  
			my $anrede = main::qform(ssp::get_var_db ("anrede",$i));  
			my $name = main::qform(ssp::get_var_db ("name",$i));  
					  
			$kdmailtext =~ s/-ANREDE-/$anrede/g;  
			$kdmailtext =~ s/-NAME-/$name/g;  
			  
				require HTML::Entities;  
				$decodedtext  = HTML::Entities::decode($kdmailtext);  
				$decodedbetreff  = HTML::Entities::decode($betreff);  
				$decodedfrom  = HTML::Entities::decode($from);  
  
						my $prog = ssp::get_mailprog(); # Pfad zum Mailprogramm  
						open(MAIL,"|$prog -t");  
						print MAIL "From: $decodedfrom \n";  
						print MAIL "To: $sendmail\n";  
						print MAIL "Subject: $decodedbetreff\n\n";  
						print MAIL "$decodedtext";  
						close(MAIL);  
						  
				print "OK, Mail an $sendmail/$anrede $name versandt...<br>";  
								  
				my $sqlg = qq|UPDATE $dbtableuser SET GESENDET = "$jetzt" WHERE EMAIL = '$sendmail' AND ORDERNR = '$ordernr'|;  
				    ssp::exec_sql($sqlg, 1);  
			}  
		}

Die Mails werden korrekt an die richtigen Adressen versendet und
print "OK, Mail an $sendmail/$anrede $name versandt...<br>";
gibt auch die richtigen Daten aus.

In ALLEN Mails wird aber -ANREDE- und -NAME- immer nur durch den ERSTEN gefundenen DB-Eintrag ersetzt.

Was mache ich falsch?

lg
dobra