Guten Tag,
folgendes Problem:
Das Script sollte eigentlich zur Emailverteilung + Anhang dienen. Soweit so gut nur
1. Haut das mit dem HTML-Header nicht hin, es wird kein Header übertragen.
2. Wenn man keinen Anhang auswählt, kommt folgendes Warning: fread(): supplied argument is not a valid stream resource in
3. Sendet er nur an den Cc und nicht an die User aus der DB.
Vielleicht könnt ihr mir im Forum hierbei helfen. Sind bestimmt nur "kleine" Fehler drin.
Vielen Dank schonmal im Vorraus.
folgendes Problem:
Das Script sollte eigentlich zur Emailverteilung + Anhang dienen. Soweit so gut nur
1. Haut das mit dem HTML-Header nicht hin, es wird kein Header übertragen.
2. Wenn man keinen Anhang auswählt, kommt folgendes Warning: fread(): supplied argument is not a valid stream resource in
3. Sendet er nur an den Cc und nicht an die User aus der DB.
Vielleicht könnt ihr mir im Forum hierbei helfen. Sind bestimmt nur "kleine" Fehler drin.
Vielen Dank schonmal im Vorraus.
PHP:
<?php
session_start();
require ("database.php");
$sql1 = "SELECT * FROM bla 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'])
{
if(!empty($betreff))
{
$betreff = utf8_decode($betreff);
}
else
{
echo "Kein Betreff eingegeben!";
exit;
}
if(!empty($absend))
{
$absend= "From: $absend\n";
}
else
{
echo "Absender konnte nicht ausgelesen werden. Versuchen Sie es erneut.";
exit;
}
if(!empty($cc))
{
$cc = "$cc\n";
}
else
{
echo "Bitte eine gültige Emailadresse eingeben..";
exit;
}
/*******Anhang********* */
$datei_content = fread(fopen($datei,"r"),filesize($datei));
/* Codiere Datei ins BASE64-Format */
$datei_content = chunk_split(base64_encode($datei_content));
/* Generiere einen Boundary */
$boundary = strtoupper(md5(uniqid(time())));
/* Beginne den Mail-Header mit MIME-Mail-Header */
$mail_header = "Content-Type: multipart/mixed; boundary=$boundary\n";
/* Hier faengt der normale Mail-Text an */
$mail_header .= "--$boundary\n";
/* Format - (html o. txt) */
if($content_type == "text")
{
$header = "MIME-Version: 1.0\n"
. $absend
. $mail_header
. $content_type
. $encoding;
$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 ($list = mysql_fetch_array($result2))
{
$empfaenger = $list["Email"];
mail($empfaenger,$betreff,$msg,$header);
}
echo "<br>Erfolgreich versandt!<br>";
}
else
{
$header = "MIME-Version: 1.0\n"
. $absend
. $mail_header
. $content_type
. $encoding;
$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 ($list = mysql_fetch_array($result3))
{
$empfaenger = $list["Email"].",";
mail($empfaenger,$betreff,$msg,$header);
}
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")
{
$header = "MIME-Version: 1.0\n"
. $absend
. $mail_header
. $content_type
. $encoding;
$content_type = "Content-Type: text/plain\n";
$encoding = "Content-Transfer-Encoding: 7bit\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 ($list = mysql_fetch_array($result2))
{
$empfaenger = $list["Email"];
mail($empfaenger,$betreff,$msg,$header);
}
echo "<br>Erfolgreich versandt!<br>";
}
elseif($content_type == "html")
{
$header = "MIME-Version: 1.0\n"
. $absend
. $mail_header
. $content_type
. $encoding;
$content_type = "Content-Type: text/html\n";
$encoding = "Content-Transfer-Encoding: 8bit\n";
$sql3 = "SELECT Email FROM test WHERE HTML = 'Ja' && TEXT = 'Nein' && Abbestellt IS NULL";
$result3 = mysql_query($sql3);
while ($list = mysql_fetch_array($result3))
{
$empfaenger = $list["Email"].",";
mail($empfaenger,$betreff,$msg,$header);
}
echo "<br>Erfolgreich versandt!<br>";
}
mail($cc,$betreff,$msg,$header);
}
?>
<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>
<br>
<p><br></p>
<br><br>
</html>