Hilfe bei Newsletter Script!

kcyberbob

Erfahrenes Mitglied
Hallo,

ich bräuchte mal eure Hilfe bei meinem Newsletterscript.
Erstmal erkläre ich euch was das Script können soll.
Also ich wähle zwischen HTML oder TEXT Mail, die Adressen werden aus der Datenbank geholt und es soll ein TEXT und Abmeldelink am ende des Newsletters sein.
So und jetzt das Script, dann das Problem.
PHP:
<?
function Code($input) {
	$input = str_replace("\n", "<br>", $input);

	return $input;

}
if (!isset($action)) {

?>
<form name="form1" method="post" action="mail.php?action=mail">
  <p>
    <select name="format">
      <option value="text" selected>text</option>
      <option value="html">html</option>
    </select>
</p>
  <p>
    <input name="subject" type="text" id="betreff">
</p>
  <p>
    <textarea name="content" cols="100" rows="10" id="content"></textarea>
</p>
  <p>
    <input type="submit" name="Submit" value="Senden">
</p>
</form>
<?
}
elseif ($action == mail) {
$cookie_accountnr = "000001";
	$mail = "admin@tischkegeln.de";
	$homepage = "tischkegeln.de";
    $xtra = "From: $mail (Newsletter von $homepage)\r\n";

	 $abfrage = "SELECT * FROM newsletter_list";
     $ergebnis = mysql_query($abfrage);
     while($row = mysql_fetch_object($ergebnis)) {

if ($format == "text") {
$url = "http://www.tischkegeln.de";
$unsubscribe = "http://tischkegeln.de/index.php?action=unsubscribe&accountnr=$cookie_accountnr&email=$row->email";
}
elseif ($format == "html") {
$url = "<a href='http://www.tischkegeln.de'>http://www.tischkegeln.de</a>";
$unsubscribe = "<a href='http://tischkegeln.de/index.php?action=unsubscribe&accountnr=$cookie_accountnr&email=$row->email'>http://tischkegeln.de/index.php?action=unsubscribe&amp;accountnr=$cookie_accountnr&amp;email=$row->email</a>";
}

$abmelden = "------------------------------------------------------------------------
Dieser Newsletter wurde ermöglicht durch $url
Wollen sie sich von diesem Newsletter abmelden?
$unsubscribe
------------------------------------------------------------------------";

$content    = $content."\n\n".$abmelden;

if ($format == html) {
	$content = Code($content);
$xtra .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
}
		   $content = $content."\n".$row->email;
		   mail($row->email,$subject,$content,$xtra);
}
  
              echo "Ihr Newsletter wurde erfolgreich verschickt";
			  }
?>

So jetzt das Problem.
Jeder der eine mail bekommt hat den untern Text immer so oft in der Mail stehen, an der stelle er in der Datenbank steht,
Also der erste hat den text zweimal stehen der dritte dreimal usw.
Wie kann ich das Problem beheben, denn ich brauche die emailadresse nicht nur in der Mailfunktion sondern auch für den Abmeldelink.

gruß kcyberbob
 
Hi,

diese Zeile ist Schuld:
PHP:
$content    = $content."\n\n".$abmelden;

dadurch wird der Text in der Variablen $content pro Durchlauf der While-Schleife immer länger.

Abhilfe: nimm eine neue Variable, z.B. $mailtext

PHP:
$mailtext = $content."\n\n".$abmelden;

und dementsprechend:

PHP:
mail($row->email,$subject,$mailtext,$xtra);


Dunsti
 
Hallo,

vielen Dank es funkrioniert aber jetzt habe ich noch ein Problem.
In den Abmelde Link soll ganz hinten noch die Emailadresse.
Wie kann ich das denn machen.
 

Neue Beiträge

Zurück