Attachment Pfad verschleieren

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Attachment Pfad verschleieren

    Moin meine lieben;
    habe folgende Frage:
    Ich verschicke Emails mit PDF Attachments, was auch dank dieses Forums gut funktioniert.
    Einziges Problem ist, das der Server - Pfad des Attachments dem Empfänger im Email Programm angezeigt wird, ala:
    !home!www!space!php!tmp!098311-03.pdf (35KB) 0
    wie läßt sich diese Anzeige unterdrücken ?
    bis bald
    McMurphy
    "I don't want to belong to any club that would accept me as a member."

    Groucho Marx

  • #2
    wenn ich nicht irre, kann man doch den dateinamen angeben, wie er in der mail aussehen soll. oder?

    zeig mal code.
    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 |


    Comment


    • #3
      Eine wohlformulierte Frage ist schon fast die antwort...............
      Das Abschicken der Mail wird aus der PDF Klasse so aufgerufen:
      PHP Code:
      $fileName "/home/www/space/php/tmp/".$this->nummer.".pdf";
      // ok, hier kann ich auch schreiben:
      //$fileName = "../php/tmp/".$this->nummer.".pdf";
      $this->mail->attachment($fileName); 
      und in der mail Klasse:
      PHP Code:
      // Header für Attachment erzeugen
      function attachment($datei)
      {
      // Funktion zum anhängen von Attachments in der Email
      // Überprüfen ob File Existiert
      if(is_file($datei)){            
      $attachment_header "--".$this->emailboundary."\n" ;
      $attachment_header .= "Content-Type: application/octet-stream;\n ";
      $attachment_header .= "name=\"$datei\"\n";
      $attachment_header .= "Content-Transfer-Encoding: base64\n";
      $attachment_header .= "Content-Disposition: attachment;\n ";
      $attachment_header .= "filename=\"$datei\"\n\n";
      // Daten der Datei einlesen, in das BASE64 Format formatieren und 
      //auf max 72 Zeichen pro Zeile aufteilen
      $file['inhalt'] = fread(fopen($datei,"rb"),filesize($datei));
      $file['inhalt'] = base64_encode($file['inhalt']);
      $file['inhalt'] = chunk_split($file['inhalt'],72);
      // Attachment mit Header in der Klassenvariable speichern
      $this->attachment[] = $attachment_header.$file['inhalt']."\n";
      }

      Trotzdem, aus purem Interesse, wie liesse sich der Pfad komplett verschleieren, so das nur noch der Dateiname angezeigt wird ?
      "I don't want to belong to any club that would accept me as a member."

      Groucho Marx

      Comment


      • #4
        schau mal. du schreibst doch immer $datei rein. und in $datei hast du den kompletten lokalen path drin. ist ja logisch, dass der den beim 'filename' dann auch drin hast.

        mache da mal noch ein basename() drum und fertig.

        PHP Code:
        $attachment_header .= "Content-Type: application/octet-stream;\n ";
        $attachment_header .= "name=\"".basename($datei)."\"\n";
        $attachment_header .= "Content-Transfer-Encoding: base64\n";
        $attachment_header .= "Content-Disposition: attachment;\n ";
        $attachment_header .= "filename=\"".basename($datei)."\"\n\n"
        und noch was. schreibe deine vars nie direkt in den string rein. das ist relativ unübersichtlich und kann gerade bei arrays zu probleme führen.
        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 |


        Comment


        • #5
          Muchas Gracias Abraxax,
          ma' wieder wat' jelernt....................
          "I don't want to belong to any club that would accept me as a member."

          Groucho Marx

          Comment

          Working...
          X