E-Mail mit x dynamischen (GD) JPGs als Anhang - PROBLEM!!! Dringend!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • E-Mail mit x dynamischen (GD) JPGs als Anhang - PROBLEM!!! Dringend!

    Hallo liebe Leute,

    ich möchte eine eMail per PHP versenden, dabei möchte ich als Attachment mehrere dynamisch erzeugte JPGs mit anhängen.

    Dabei habe ich jetzt zwei Probleme:

    1. Es lässt sich anscheinend nur eine real auf der Festplatte vorhandene Datei anhängen und eben keine nach dem Schema "bildausschnitt.php?FilmBild=1100-28&posoben=46&poslinks=179".

    2. Ich weis nicht, wie ich mehrere (unterschiedlich viele) Anhänge produziere.
    Soweit das die verschiedenen URL`s in ein Array geschrieben werden müssen bin ich bereits, aber wie ich dort dynamische URL`s reinbekomme verstehe ich (auch bei PHP.net) nicht.
    Mit einer oder mehrere realen Dateien klappt folgendes bereits:

    ---
    <?

    $ATTM=array("bild1.jpg,bild2.jpg");

    $TEXT = "Es liegt eine neue Bestellung vor";


    function SendMail($From,$FromName,$To,$ToName,$Subject,$Text,$Html,$AttmFiles){
    $OB="----=_OuterBoundary_000";
    $IB="----=_InnerBoundery_001";
    $Html=$Html?$Htmlreg_replace("/\n/","{br}",$Text)
    or die("neither text nor html part present.");
    $Text=$Text?$Text:"Sorry, but you need an html mailer to read this mail.";
    $From or die("sender address missing");
    $To or die("recipient address missing");

    $headers ="MIME-Version: 1.0\r\n";
    $headers.="From: ".$FromName." <".$From.">\n";
    $headers.="To: ".$ToName." <".$To.">\n";
    $headers.="Reply-To: ".$FromName." <".$From.">\n";
    $headers.="X-Priority: 1\n";
    $headers.="X-MSMail-Priority: High\n";
    $headers.="X-Mailer: PHP Mailer\n";
    $headers.="Content-Type: multipart/mixed;\n\tboundary=\"".$OB."\"\n";

    //messages start with text/html alternatives in OB
    $Msg ="This is a multi-part message in MIME format.\n";
    $Msg.="\n--".$OB."\n";
    $Msg.="Content-Type: multipart/alternative;\n\tboundary=\"".$IB."\"\n\n";

    //plaintext section
    $Msg.="\n--".$IB."\n";
    $Msg.="Content-Type: text/plain;\n\tcharset=\"iso-8859-1\"\n";
    $Msg.="Content-Transfer-Encoding: quoted-printable\n\n";
    // plaintext goes here
    $Msg.=$Text."\n\n";

    // end of IB
    $Msg.="\n--".$IB."--\n";

    // attachments
    if($AttmFiles){
    foreach($AttmFiles as $AttmFile){
    $patharray = explode ("/", $AttmFile);
    $FileName=$patharray[count($patharray)-1];
    $Msg.= "\n--".$OB."\n";
    $Msg.="Content-Type: application/octetstream;\n\tname=\"".$FileName."\"\n";
    $Msg.="Content-Transfer-Encoding: base64\n";
    $Msg.="Content-Disposition: attachment;\n\tfilename=\"".$FileName."\"\n\n";

    //file goes here
    $fd=fopen ($AttmFile, "r");
    $FileContent=fread($fd,filesize($AttmFile));
    fclose ($fd);
    $FileContent=chunk_split(base64_encode($FileContent));
    $Msg.=$FileContent;
    $Msg.="\n\n";
    }
    }

    //message ends
    $Msg.="\n--".$OB."--\n";
    mail($To,$Subject,$Msg,$headers);
    //syslog(LOG_INFO,"Mail: Message sent to $ToName <$To>");
    }

    //$TEXT="This is the first test\n in text format";
    //$HTML=$TEXT;

    SendMail(
    "$email","$name", //sender
    "test@testiingdomain.de","Empfaenger", //recipient
    "Neue Bestellung $auftragsnr vom $datum", //subject
    $TEXT,$HTML,$ATTM); //body and attachment(s)

    ?>
    ---


    Nur wie kann ich jetzt festlegen wie viele Einträge in das Array $ATTM=array("bild1.jpg,bild2.jpg"); eigelsen werden?
    Funktioniert das überhaupt mit dynamischen Dateien?
    Oder muss die Datei erst real gespeichert werden?
    Falls ja, wie würde man die Datei speichern?

    Vielen Dank für Eure Hilfe!

    Gruß

    Mareike

  • #2
    man kann kein dynamischen bild in der mail speichern.
    tipp: mit den GD funktionen ein temporäres bild anlegen und z.b. unter /tmp abspecihern. damit hast du dann eine feste datei, die du anhängen kannst.

    was die attachments betrifft könnte dies dir weiterhelfen.
    http://www.php-resource.de/forum/sho...threadid=13577
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Ok, und wie generiere ich das ARRAY aus des mysqlf Datenbank??

      Danke für die schnelle Antwort!!
      Hat mir sehr geholfen!
      Ich bin jetzt soweit, dass ich die entsprechenden per PHP gespeichert bekomme.

      Jetzt möchte ich folgendes machen:

      Alle URLs zu den Bildern sollen in einem ARRAY gesammelt und dann gemailt werden.
      Das Mailen ist nicht das Prob, sondern der ARRAY Aufbau innerhalb einer "for" Schleife, die durch einen mysql select angeführt wird.

      ---
      ......mysql abfrage .....

      for ($i=0; $i< $num ; $i++) {


      $aktuelles_attachment = "ausschnitte/" . $FilmBild . "_format" . $Format . "_posoben" . $posoben . "_poslinks" . $poslinks . ".jpg";

      if (isset($ATTM))
      {
      $ATTM=array($aktuelles_attachment);
      }
      else
      {
      $ATTM=array_push($ATTM,$aktuelles_attachment);
      }

      }
      ---

      Leider wird das ARRAY nicht so gefühlt, wie ich möchte :-((
      Ich möchte das das Array so gefühlt wird, als wenn ich es wie folgt mache:
      $ATTM=array("bild.jpg","bild.jpg");

      Was mache ich falsch??

      Vielen Dank!

      Gruß

      Mareike
      Zuletzt geändert von MaraikeX; 22.01.2003, 17:05.

      Kommentar


      • #4
        du hast dich wohl verstrickt....
        hier das ganze mal übersichtlicher und etwas abgespeckter.
        das sollte auch funktionieren.

        PHP-Code:
        for ($i=0$i$num $i++) {
          
        $aktuelles_attachment "ausschnitte/" $FilmBild "_format" $Format "_posoben" $posoben "_poslinks" $poslinks ".jpg";
          
        $ATTM[] = $aktuelles_attachment;

        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Du Bist mein Held!!!
          Das klappt jetzt!

          Ich bin wirklich begeistert wie schnell man hier komepetente Antworten bekommt!!!

          Gruß

          Mereike

          Kommentar


          • #6
            Original geschrieben von MaraikeX
            Du Bist mein Held!!!
            *rotwerd*
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar

            Lädt...
            X