Webdesign in Siegen

[Stuff] PHPMailer Bilder auch im Thunderbird anzeigen

Fragen zum Thema PHP können hier gestellt werden

Moderator: Basti

[Stuff] PHPMailer Bilder auch im Thunderbird anzeigen

Beitragvon Labrar am 07.11.2007, 14:36

Hallo

Da Thunderbird Bildanhänge nur dann anzeigt wenn der Typ des Bildes fest definiert ist, habe ich hier eine kleine Funktion vorbereitet (Dank auch an http://www.tanmar.info/content/view/36/64/ ) die es ermöglicht mit der PHP Mailerklasse auch mehrere Bilder mit Beschreibung zu versenden und anzuzeigen. Auch im Thunderbird.

Die Funktion lässt sich ideal für Newsletter und Bestelldatenzusammenstellungen verwenden.(Letzteres war meine Intention)

Zunächst die PHP Mailer klasse

1.)
Laded euch die Klasse hier http://sourceforge.net/project/showfile ... p_id=26031 runter.
2.)
Benennt den entpackten Ordner( wenn er nicht schon so heißt) "phpmailer" und schiebt ihn auf euren Server.
3.)
erstellt eine Datei die ihr zB mailFunc.php nennt.
4.)
schreibt in diese Datei folgenden Code
Code: Alles auswählen
<?php
function mailTo($a,$b,$c,$d,$e,$f){
    require('phpmailer/class.phpmailer.php');
    $toAdd=explode("|",$d);
    for($u=0;$u<count($toAdd);$u++){
    $mail = new PHPMailer();
    $mail->IsHTML(true);
    $email_text = $b."<br><br>";
    $mail->Body    = nl2br($email_text);
    $between=explode("#",$c);
    for($q=0;$q<count($between);$q++){
         $arr=explode("|",$between[$q]);
         $pic=$arr[0];
         $descr=$arr[1];
         $chType=explode(".",$pic);
         $type=$chType[1];
       $str="attach".$q;
       $mail->AddEmbeddedImage($pic,$str, $pic, "base64", "image/".$type);
         $mail->Body .= '<table border="0"><tr><td align="left" valign="top">><img src="cid:'.$str.'" width="200"></td><td align="left" valign="top">'.$descr."</td></tr></table><br><br>";
   }
    $mail->Body .=$e;
    $mail->AltBody = strip_tags($email_text."\n".$b."\n".$descr."\n\n".$e);
    $abs=explode("|",$f);
    $mail->From = $abs[1];
    $mail->FromName = $abs[0];
    $mail->AddAddress($toAdd[$u]);
    $mail->Subject = $a;
  if(!$mail->Send())
  {
    echo "Die Email konnte nicht gesendet werden";
    echo "Fehler: " . $mail->ErrorInfo;
  }
  else
  {
   echo "Die Email wurde versandt.";
  }
  }
  }


speichert die Datei im selben Verzeichniss wie auch den Ordner phpmailer.

So jetzt könnt ihr von überall aus darauf zu greifen.

Bsp.

Code: Alles auswählen
require("meinPfad/mailFunc.php");
mailTo("Betreff","Text vor den Bildern","Bild1.jpg|Beschreibung1#Bild2.jpg|Beschreibung2","Empfänger@1.de|Empfänger@2.de","Text nach den Bildern","Von wem|Von@email.de");


Mit den Parametern sieht es komplizierter aus als es ist. Sonderzeichen wie | und # werden im Script dazu verwendet eben die Daten voneinender zu trennen.
Ich denke das ist selbst erklärend.

Viel Spaß damit
Ich möchte wie mein Opa im Schlaf sterben und nicht heulend und schreiend wie sein Beifahrer.

Mentalisten sprechen Rabisch und sprengen den Geist
Fundamentalisten sprechen Arabisch und sprengen sich selbst

Von O. Kalkofe über die Urin Kellner Show
Labrar
Mitglied
 
Beiträge: 443
Registriert: 11.04.2007, 21:52
Wohnort: Ludwigsburg

Re: [Stuff] PHPMailer Bilder auch im Thunderbird anzeigen

Beitragvon Manuel am 09.11.2007, 15:04

Wenn du es noch ein wenig mehr beschreiben würdest, wäre das doch fast ein PHP-Tutorial wert, oder? ;)
Benutzeravatar
Manuel
Site Admin
 
Beiträge: 9114
Registriert: 10.12.2004, 19:29
Wohnort: Asbach

Re: [Stuff] PHPMailer Bilder auch im Thunderbird anzeigen

Beitragvon Labrar am 09.11.2007, 16:44

Ja das stimmt. Ich werd auch irgendwann mal ein Tut schreiben.
Aber die Zeit.... :cry:
Ich möchte wie mein Opa im Schlaf sterben und nicht heulend und schreiend wie sein Beifahrer.

Mentalisten sprechen Rabisch und sprengen den Geist
Fundamentalisten sprechen Arabisch und sprengen sich selbst

Von O. Kalkofe über die Urin Kellner Show
Labrar
Mitglied
 
Beiträge: 443
Registriert: 11.04.2007, 21:52
Wohnort: Ludwigsburg


Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast