Fehler beim senden von HTML in einer Email

largo666

Mitglied
Hi Leutz,

ich hab da mal n Problem bei dem ich nicht weiter komme.
Ich möchte einen Newsletter an alle Mailadressen in der Datenbank versenden.
Diese Mail soll HTML content enthalten.

Schicke ich das Formular ab gebe ich alle E-mails an die der Newsletter gesendet wird per echo aus.

1. Fehler: Mail Adressen werden nicht angezeigt.
2. Fehler: MIME-Version:... List:; syntax illegal for recipient addresses 1.0Content-Type.
das steht hinter den (momentan noch nicht) per echo ausgegebenen emails.
3. Fehler: Wenn ich die Newsletter Mail im mailprogramm öffne sehe ich den Quellcode in html aber nicht
die gewünschte Formatierung.

Das Liegt sicherlich am Mime Type aber ich weiß nicht was daran falsch ein sollte.
Hab die von den Beispielen von php.net verwendet. Funktioniertt aber nicht. Was mache ich falsch?

Hier der Code nach dem das Formular abgeschickt wurde:

PHP:
if(isset($_POST['newsletter']))
{
	if($_POST['newsletter'])
	{

$from = "newsletter@test.de";
if(isset($_POST["b1"])){
$betreff = $_POST["b1"];
}else {$betreff='';}

if(isset($_POST["t1"])){
$text = $_POST["t1"];
}else {$text='';}

$text_comp="<HTML><HEAD></HEAD> 
	<BODY bgcolor=\"003265\" link=\"FF0000\" vlink=\"FF0000\" alink=\"FF0000\">
	<table align=\"center\" width=\"700\">
	<tr>
	<td align=\"center\"><img src=\"http://www.test.de/logo.gif\"></td>
	</tr>
	<tr>
	<td>&nbsp;</td>
	</tr><tr><td>$text</td></tr></table></BODY></HTML>"; 

// für HTML E- Mails Header setzen
$header = "MIME-Version: 1.0";
$header .= "Content-Type: text/html; charset=\"utf-8\"";
$header .= "Content-Transfer-Encoding: 8bit\n";

$sql = "SELECT Email
			FROM datenbank 
			WHERE abc = 'abc'";
$result = mysql_query($sql);

  if(mysql_num_rows($result)) {
	  echo "<table align=\"center\" width=\"700\" class=\"table_alone_lines\"><tr><td class=\"tablecontentlinks\">Newsletter gesendet an:</td></tr><tr><td>&nbsp;</td></tr><tr><td>";
    while($row=mysql_fetch_array($result)) {
      echo "('.$row->Email.'), ";
	        mail($row['Email'],$betreff,$text_comp,"From: Adresse.de ".$from, $header);
      usleep(500);
	  
    }
	echo"</td></tr></table>";
echo 'Newsletter wurde erfolgreich gesendet';
  } else {
    echo 'Newsletter konnte nicht gesendet werden';
  }
	}
 
Zuletzt bearbeitet:
Hab etwas in Google gefunden,

PHP:
<?php 
/* recipients */ 
$to  = "mary@example.com" . ", " ; // note the comma 
$to .= "kelly@example.com"; 

/* subject */ 
$subject = "Birthday Reminders for August"; 

/* message */ 
$message = ' 
<html> 
<head> 
 <title>Birthday Reminders for August</title> 
</head> 
<body> 
<p>Here are the birthdays upcoming in August!</p> 
<table> 
 <tr> 
  <th>Person</th><th>Day</th><th>Month</th><th>Year</th> 
 </tr> 
 <tr> 
  <td>Joe</td><td>3rd</td><td>August</td><td>1970</td> 
 </tr> 
 <tr> 
  <td>Sally</td><td>17th</td><td>August</td><td>1973</td> 
 </tr> 
</table> 
</body> 
</html> 
'; 

/* To send HTML mail, you can set the Content-type header. */ 
$headers  = "MIME-Version: 1.0rn"; 
$headers .= "Content-type: text/html; charset=iso-8859-1rn"; 

/* additional headers */ 
$headers .= "To: Mary <mary@example.com>, Kelly <kelly@example.com>rn"; 
$headers .= "From: Birthday Reminder <birthday@example.com>rn"; 
$headers .= "Cc: birthdayarchive@example.comrn"; 
$headers .= "Bcc: birthdaycheck@example.comrn"; 

/* and now mail it */ 
mail($to, $subject, $message, $headers);
?>
 
Ja das hatte ich auch alles schon ausprobiert... inklusive alles was bei php.net darüber steht
Funktioniert leider alles nicht wirklich.
Naja werd wohl das html komplett weg lassen und nur reinen text verwenden.

Trotzdem Danke
 
So wie ich das sehe ich das ja auch ganz klar, eine E-Mail hat verschiedene Formate, wenn du nun die Datei in Rich-Text versendest dann wird natürlich auch der komplette Quellcode mit angezeigt. Also entweder du schaffst es irgendwie die E-Mail standardmäßig auf HTML-Formatierung umzustellen oder du wirst HTML nicht verwenden können.
 
Zurück