Guten Tag liebe Forumnutzer,
ich habe folgendes Script mit folgendem Problem.
Eigentlich sollte das Script Emails + Anhang(oder auch nicht) versenden, die Emailadressen werden vorher aus einer DB ausgelesen.
Soweit so gut nur klappt das nur insoweit, dass ich die Copymail an mich selbst krieg, die eigentliche Email aus der DB aber nicht.
Zudem funktioniert der HTML-Header auch nicht und wird mir als normale Textemail angezeigt.
Wäre nett wenn mir einer helfen könnte. Ich denke mal das ich mal wieder nen Leichtsinnsfehler drin hab und eigentlich eher das machen sollte.
Vielen Dank
ich habe folgendes Script mit folgendem Problem.
Eigentlich sollte das Script Emails + Anhang(oder auch nicht) versenden, die Emailadressen werden vorher aus einer DB ausgelesen.
Soweit so gut nur klappt das nur insoweit, dass ich die Copymail an mich selbst krieg, die eigentliche Email aus der DB aber nicht.
Zudem funktioniert der HTML-Header auch nicht und wird mir als normale Textemail angezeigt.
Wäre nett wenn mir einer helfen könnte. Ich denke mal das ich mal wieder nen Leichtsinnsfehler drin hab und eigentlich eher das machen sollte.
Vielen Dank
PHP-Code:
<?php
session_start();
require ("database.php");
$sql1 = "SELECT * FROM test2 WHERE Id = '".$_SESSION['user_id']."' LIMIT 1";
$result1 = mysql_query($sql1);
while ($row = mysql_fetch_array($result1))
{
$user = $row["Username"];
$vname = $row["Vorname"];
$nname = $row["Nachname"];
$email = $row["Email"];
}
$betreff = $_REQUEST['betreff'];
$absend = $_REQUEST['from'];
$cc = $_REQUEST['cc'];
if ($_REQUEST['senden'])
{
$betreff = utf8_decode($betreff);
if(!empty($absend))
{
$absend = "From: $absend\n";
}
if(!empty($cc))
{
$cc = "Cc: $cc\n";
}
if(!empty($datei))
{
$datei_content = fread(fopen($datei,"r"),filesize($datei));
$datei_content = chunk_split(base64_encode($datei_content));
$boundary = strtoupper(md5(uniqid(time())));
$mail_header = "Content-Type: multipart/mixed; boundary=$boundary\n";
/* Hier faengt der normale Mail-Text an */
$mail_header .= "--$boundary\n";
if($content_type == "text")
{
$mail_header .= "Content-Type: text/plain\n";
$mail_header .= "Content-Transfer-Encoding: 7bit\n\n";
$msg = str_replace(chr(10),"",$msg);
$msg = utf8_decode($msg);
$sql2 = "SELECT Email FROM test WHERE HTML = 'Nein' && TEXT = 'Ja' && Abbestellt IS NULL";
$result2 = mysql_query($sql2);
while ($list2 = mysql_fetch_array($result2))
{
$empfaenger = $list2["Email"];
mail($empfaenger,$betreff,$msg,$header);
if(empty($empfaenger))
{
echo "Empfänger konnte aus Datenbank nicht ausgelesen werden.<br> Bitte erneut versuchen.";
}
else
{
echo "<br>Erfolgreich versandt!<br>";
}
}
}
else
{
$mail_header .= "Content-Type: text/html\n";
$mail_header .= "Content-Transfer-Encoding: 8bit\n\n";
$sql3 = "SELECT Email FROM test WHERE HTML = 'Ja' && TEXT = 'Nein' && Abbestellt IS NULL";
$result3 = mysql_query($sql3);
while ($list3 = mysql_fetch_array($result3))
{
$empfaenger = $list1["Email"];
mail($empfaenger,$betreff,$msg,$header);
if(empty($empfaenger))
{
echo "Empfänger konnte aus Datenbank nicht ausgelesen werden.<br> Bitte erneut versuchen.";
}
else
{
echo "<br>Erfolgreich versandt!<br>";
}
}
}
$mail_header .= "$msg\n\n";
/* Hier faengt der Datei-Anhang an */
$datei_name = utf8_decode($datei_name);
$mail_header .= "--$boundary\n";
$mail_header .= "Content-Type: application/octetstream; name=\"$datei_name\"\n";
/* Codierung immer BASE64 */
$mail_header .= "Content-Transfer-Encoding: base64\n";
$mail_header .= "Content-Disposition: attachment; filename=\"$datei_name\"\n\n";
$mail_header .= "$datei_content\n";
/* Gibt das Ende der eMail aus */
$mail_header .= "--$boundary--\n";
}
else
{
/* Format - (html o. txt) */
if($content_type == "text")
{
$content_type = "Content-Type: text/plain\n";
$encoding = "Content-Transfer-Encoding: 7bit\n";
$msg = str_replace(chr(10),"",$msg);
$msg = utf8_decode($msg);
$sql4 = "SELECT Email FROM test WHERE HTML = 'Nein' && TEXT = 'Ja' && Abbestellt IS NULL";
$result4 = mysql_query($sql4);
while ($list4 = mysql_fetch_array($result4))
{
$empfaenger = $list4["Email"];
mail($empfaenger,$betreff,$msg,$header);
if(empty($empfaenger))
{
echo "Empfänger konnte aus Datenbank nicht ausgelesen werden.<br> Bitte erneut versuchen.";
}
else
{
echo "<br>Erfolgreich versandt!<br>";
}
}
}
elseif($content_type == "html")
{
$content_type = "Content-Type: text/html\n";
$encoding = "Content-Transfer-Encoding: 8bit\n";
$sql5 = "SELECT Email FROM test WHERE HTML = 'Ja' && TEXT = 'Nein' && Abbestellt IS NULL";
$result5 = mysql_query($sql5);
while ($list5 = mysql_fetch_array($result5))
{
$empfaenger = $list5["Email"];
mail($empfaenger,$betreff,$msg,$header);
if(empty($empfaenger))
{
echo "Empfänger konnte aus Datenbank nicht ausgelesen werden.<br> Bitte erneut versuchen.";
}
else
{
echo "<br>Erfolgreich versandt!<br>";
}
}
}
$header = "MIME-Version: 1.0\n"
. $from
. $cc
. $mail_header
. $content_type
. $encoding;
mail($cc,$betreff,$msg,$header);
echo "<br />Erfolgreich versandt!";
};
}
?>
<html>
<head>
<title>Newsletter</title>
<script language="JavaScript">
<!--
function textCounter(field, countfield)
{
countfield.value = field.value.length;
}
-->
</script>
</head>
<body>
<font face="Arial" size="3" color="#0064C8">BLAblubb.</font>
<hr noshade style="width:380px;
color:orange; height:5px; text-align:left;"><br>
<form enctype="multipart/form-data" method="post"
action="<?$PHP_SELF?>"?>
<table bgcolor="#f0f0f0" border="1" cellspacing="1" cellpadding="3" rules="groups" >
<i><font face="Arial" color="#808080" size="2"><strong>Erstellt von</strong></font></i><br>
<tr><td>User:</td>
<td>
<input type="text" name="erstellt" value="<?php echo $user?>"><br></td>
<td>Von:</td>
<td><input type="text" name="from" value="test@test.de"><br></td>
<td>Kopie an:</td>
<td><input type="text" name="cc" value="<?php echo $email?>">
</td>
</tr>
</table>
<br><br>
<td>
<select class="lh" name="content_type" >
<option value="html">Format: HTML</option>
<option value="text">Format: Text</option>
</select><br><br>
<table bgcolor="#f0f0f0" border="1" cellspacing="1" cellpadding="3"
</tr>
<tr>
<td>Anrede:<br>
<input type="text" name="anrede" size="50"></td>
</tr>
<tr>
<td>Betreff:<br>
<input type="text" name="betreff" size="50"></td>
</tr>
</table><br>
<table bgcolor="#f0f0f0" border="1" cellspacing="1" cellpadding="3" rules="groups" >
<tr>
<td>Text für Newsletter:<br>
<textarea name="msg" rows="15" cols="70"
onKeyDown="textCounter(this.form.msg,this.form.Textzaehler);" onKeyUp="textCounter
(this.form.msg,this.form.Textzaehler);"></textarea>
<br>
<b>Zeichen</b> verwendet: <input type="text" name="Textzaehler" value="0" size="6" readonly>
<br><hr>
Anhang<br>
<input type="file" size="63" name="datei">
</td>
</tr>
</table>
<p>
<input type="submit" name="senden" value="Senden" >
<input type="reset" value="Zurücksetzen">
</p>
</form>
</body>
</html>
Kommentar