Hallo,
für einen Newsletter verwende ich mail() (logisch :). In testläufen, musste ich feststellen, dass mein Programm nicht fehlerfrei aber auch nicht fehlerhaft läuft.
So sieht das Programm (auszug) aus:
PHP-Code:
elseif ($_GET['do'] == 'send') {
if (!isset($_POST['s'])) {
echo '<form action="newsletter.php?do=send" method="post" style="margin-top: 0px; margin-bottom: 0px;"><textarea name="text" cols="156" rows="20" class="formfield"></textarea><br/><input type="submit" name="s" value="Vorschau" class="button" /> <input type="submit" name="s" value="Newsletter verschicken" class="button" /></form><p>Der Ausdruck :NAME: wird durch den, in der Datenbank vorhandenen, Namen des Empfängers ersetzt.</p>';
}
elseif ($_POST['s'] == 'Vorschau') {
echo '<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#000000" width="800"><tr><td>';
@include ('../../library/newsletter/header.html');
echo "<br>";
echo '<div style="font-family: Arial; font-size: 12px;">'.nl2br(stripslashes($_POST['text'])).'</div>';
echo "<br>";
@include ('../../library/newsletter/footer.html');
echo '</td></tr></table><br/><br/>(Zum Editieren bzw. Versenden <a href="javascript:history.back();">zurück</a> gehen)';
}
elseif ($_POST['s'] == 'Newsletter verschicken') {
set_time_limit(300);
$adressen = mysql_query('SELECT `email`, `name` FROM '.$newsletter_prefix.'newsletter ');
$head = @file_get_contents('../../library/newsletter/header.html');
$foot = @file_get_contents('../../library/newsletter/footer.html');
$text1 = stripslashes($_POST['text']);
$text1 = str_replace("r", '', $text1);
$text1 = '<div style="font-family: Arial; font-size: 12px;">'.nl2br($text1).'</div>';
echo '<!-- '; $i = 0;
while ($data = mysql_fetch_array($adressen, MYSQL_ASSOC)) {
$text = (empty($data['name'])) ? str_replace(':NAME:', 'Unbekannt', $text1) : str_replace(':NAME:', $data['name'], $text1);
mail($data['email'], $newsletter_name.date(" M Y"),$head.$text.'<br /><div style="font-family: Arial; font-size: 12px;"><hr width="100%" size="1" color="#000000" align="center" noshade>Um den Newsletter abzubestellen <a href="'.$def_webseite.'">'.$def_webseite.'</a> besuchen, Emailadresse eingeben und Austragen klicken.'.$foot, "MIME-Version: 1.0rnContent-type: text/html; charset=iso-8859-1rnFrom: ".$newsletter_name." <".$def_email.">rn");
$i++;
echo "$i: $data[email], ";
}
echo '-->';
echo 'Newsletter verschickt.';
}
}
Wichtig ist eigentlich nur die Zeile:
PHP-Code:
mail($data['email'], $newsletter_name.date(" M Y"),$head.$text.'<br /><div style="font-family: Arial; font-size: 12px;"><hr width="100%" size="1" color="#000000" align="center" noshade>Um den Newsletter abzubestellen <a href="'.$def_webseite.'">'.$def_webseite.'</a> besuchen, Emailadresse eingeben und Austragen klicken.'.$foot, "MIME-Version: 1.0rnContent-type: text/html; charset=iso-8859-1rnFrom: ".$newsletter_name." <".$def_email.">rn");
In der Datenbank habe ich 2 verschiedene Emails eingetragen, dessen beide male ich der empfänger bin. Auf der einen Adresse kommt die Email so wie sie soll an. In der anderen kommt sie mit als Sourcecode an:
HTML-Code:
Content-type: text/html; charset=iso-8859-1
From: Development <[... ... ...]>
<div align="center">
<table border="0" bordercolor="#000000" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="100%">
<tr>
<td width="100%" align="right"><img src="http://[... ... ...]/library/newsletter/logo.jpg" border="0"></td>
</tr>
</table>
</div><div style="font-family: Arial; font-size: 12px;">test</div><br /><div style="font-family: Arial; font-size: 12px;"><hr width="100%" size="1" color="#000000" align="center" noshade>Um den Newsletter abzubestellen <a href="http://[... ... ...]">http://[... ... ...]</a> besuchen, Emailadresse eingeben und Austragen klicken.<hr width="100%" size="1" color="#000000" align="center" noshade>
Auffälig an der Email ist, dass der "From:" fehlt. Ich habs also anschliesend (laut php.net) es mit
PHP-Code:
mail($data['email'], $newsletter_name.date(" M Y"),$head.$text.'<br /><div style="font-family: Arial; font-size: 12px;"><hr width="100%" size="1" color="#000000" align="center" noshade>Um den Newsletter abzubestellen <a href="'.$def_webseite.'">'.$def_webseite.'</a> besuchen, Emailadresse eingeben und Austragen klicken.'.$foot, "MIME-Version: 1.0rnContent-type: text/html; charset=iso-8859-1rn"From: ".$newsletter_name." <".$def_email.">"rn");
versucht ("From: ".$newsletter_name." <".$def_email.">") und das Ergebniss war, das ich die Emails von annoymus bekommen habe, der Inhalt (eines richtig, eines in sourcecode) nicht geändert hat.
Hat jemand vielleicht einen Tipp was ich falsch mache?