Email versenden

flying-anzi

Erfahrenes Mitglied
Hallo

Ich habe ein Script geschrieben, welches an jeden aus der Datenbank eine email mit einem für jede Person bestimmten Link schicken soll.
Es klappt auch teilweise.
Aber jetzt das Problem:
Der Erste in der Datenbank bekommt eine Email die noch richtig dargestellt wird.
Der Zweite in der Datenbank bekommt eine Email wo die von der Text der ersten Person und der Text der zweiten Person enthalten ist.
Der Dritte in der DB bekommt eine Email mit den Texten der ersten 2 und seinen eigenen Text...
Wo könnte der Fehler in meinen Skript sein?

PHP:
while ($row = mysql_fetch_array($result)) { 
	
  $to='michael.anzengruber@....at';
  $subject='Trachtenkapelle Kallham - Personendaten Update';									
  $eol="\r\n";
  $mime_boundary=md5(time());

  # Common Headers
  $headers .= "From: Trachtenkapelle Kallham - Webmaster<michael.anzengruber@....com>".$eol;
  $headers .= "Reply-To: Michael Anzengruber<michael.anzengruber@....com>".$eol;
  $headers .= "Return-Path: Michael Anzengruber<michael.anzengruber@....com>".$eol;    // these two to set reply address
  $headers .= "Message-ID: <".time()."-".$row['email'].">".$eol;
  $headers .= "X-Mailer: PHP v".phpversion().$eol;          // These two to help avoid spam-filters
  #Body
  $body="

          Hallo ".$row['vname']." ".$row['nname']." !
		  
		  
  
  
 Damit deine Daten auf der Homepage wiedereinmal aktualisiert werden, bitte unter dem nachfolgenden Link deine Daten aktualisieren. 
 
  
  
 Link: http://...tk-kallham.com/benutzer_update.php?id=".$row["session"]."

  
  
  
  
  
  Lg Michael
  Webmaster
  
  
  
  
  
  Diese Email wurde automatisch erstellt! Für Informationen bitte ein Email an michael.anzengruber@tk-kallham.com senden
  
  

  ";


  # Text Version
  $msg .= strip_tags(str_replace("<br>", "\n", substr($body, (strpos($body, "<body>")+6)))).$eol.$eol;

  # SEND THE EMAIL
  ini_set(sendmail_from,'michael.anzengruber@.....com');  // the INI lines are to force the From Address to be used !
  $mail_sent = mail($to, $subject, $msg, $headers);
 
  ini_restore(sendmail_from);
  


	
	echo $row['vname'].' '.$row['nname'];
	echo '<br>';
	
}
 
Zuletzt bearbeitet:
Hi,

Du hängst in jedem Schleifendurchlauf an $headers und $msg an.

Code:
while ($row = mysql_fetch_array($result)) { 
  ...
  # Common Headers
  $headers = "From: Trachtenkapelle Kallham - Webmaster<michael.anzengruber@....com>".$eol;
  $headers .= "Reply-To: Michael Anzengruber<michael.anzengruber@....com>".$eol;
  $headers .= "Return-Path: Michael Anzengruber<michael.anzengruber@....com>".$eol;    // these two to set reply address
  $headers .= "Message-ID: <".time()."-".$row['email'].">".$eol;
  $headers .= "X-Mailer: PHP v".phpversion().$eol;          // These two to help avoid spam-filters
   ...
  $msg = strip_tags(str_replace("<br>", "\n", substr($body, (strpos($body, "<body>")+6)))).$eol.$eol;
   ...
}

LG
 
Nicht jedes Mal. Nur an den Stellen die kuddeldaddeldu (Tippfehler bitte ich zu entschuldigen und schiebe den schwarzen Peter an die Namenswahl Deinerseits) rot markiert hat.
Somit wird bei jedem Durchlauf der Schleife bei der ersten Nutzung der Variable der Inhalt sozusagen erstmal geloescht bevor er neu gesetzt wird, und nicht staendig neu hinten drangehaengt.
 
Also soll ich einfach die Punkte vor der dem gleich einfach immer weglassen und sie zusammenfassen oder

Wie, immer? Vielleicht schaust Du Dir mal den Abschnitt "Zuweisungsoperatoren" im Manual an, damit Du auch weißt, was Du da tust. ;)

LG

EDIT//
Dennis Wronka hat gesagt.:
kuddeldaddeldu (Tippfehler bitte ich zu entschuldigen und schiebe den schwarzen Peter an die Namenswahl Deinerseits)
Da bin ich schmerzfrei und ausserdem tippt es sich doch, wie man sieht, wunderbar. :)
 
Zuletzt bearbeitet:
Zurück