Martin aus Wien: PEAR Mail addHTMLimage()

Guten Tag allerseits,

ich habe in einer Datenbank Texte und Bilder eines Veranstaltungskalenders gespeichert. Nun soll ein Newsletter mit den Veranstaltungen verschickt werden. Die Email generiere ich mit PEAR Mail und Mail_Mime.
Nun soll auch ein inline Bild in die Mail. Doch das klappt nicht mit den Bildern aus der Datenbank. In die Webseite binde ich die Bilder folgendermaßen ein:

<img src="img_show.php?id=<?php echo $id ?>" />

und der PHP-Code sieht so aus:

  
<?php  
require_once "db_connect.php";  
$sql = "SELECT Bild_size, Bild_type, Bild_name, Bild_data FROM Events WHERE Event_ID = {$_GET['id']}";  
$result = mysql_query($sql) or die("Select: ".mysql_error());  
$data = mysql_fetch_assoc($result);  
header("Content-length".$data["Bild_size"]);  
header("Content-Disposition: inline; filename=".$data["Bild_name"]);  
header("Content-type: ".$data["Bild_type"]);  
echo $data['Bild_data'];  
exit;  
?>  

Soweit so gut. Aber das folgende funktioniert nicht:

$mime->addHTMLImage("img_show.php?id=$id"; "image/jpeg");

Es wird kein Bild in die Mail eingefügt. Wenn ich statt image_show.php den Pfad zu einem Bild angebe, das auf dem Server gespeichert ist, wird es eingefügt.

Woran kann das liegen? Muss ich die Bilder als flat files speichern? Das würde einen ziemlichen Umbau bedeuten. Ich habe auch schon versucht, nur die reinen Bilddaten direkt aus der Datenbank einzugeben, aber das funktioniert leider auch nicht.

Vielen Dank für jede gute Idee

Martin aus Wien

  1. Hallo Martin,

    $mime->addHTMLImage("img_show.php?id=$id"; "image/jpeg");

    Ich glaube nicht, dass dir PHP diese Zeile ohne eine Fehlermeldung durchgehen lässt ... (Tipp: Parameter in Funktionsaufrufen werden nicht mit Semikolons abgetrennt)

    Es wird kein Bild in die Mail eingefügt. Wenn ich statt image_show.php den Pfad zu einem Bild angebe, das auf dem Server gespeichert ist, wird es eingefügt.

    Woran kann das liegen? Muss ich die Bilder als flat files speichern? Das würde einen ziemlichen Umbau bedeuten. Ich habe auch schon versucht, nur die reinen Bilddaten direkt aus der Datenbank einzugeben, aber das funktioniert leider auch nicht.

    Du hast vermutlich ein RTFM-Problem - du möchtest dir die Parameter 3 und 4 der Methode anschauen.

    Gruß,
    Tobias

    1. Ja, danke, Tobias, ich hab's verstanden und es funktioniert. Aber weißt du, es ist bald Mitternacht, ich habe einen langen Arbeitstag hinter mir und ich mag mich nicht gern abkanzeln lassen. Danke trotzdem.

      1. Hi!

        ich habe einen langen Arbeitstag hinter mir und ich mag mich nicht gern abkanzeln lassen.

        Das will die Merkel auch nicht - ist kein wirkliches Argument!

        Schönen Tag der deutschen Eiheit [sic];-)

        off:PP

        --
        "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)