Attachment Pfad verschleieren

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

  • 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 |


    Kommentar


    • #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

      Kommentar


      • #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 |


        Kommentar


        • #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

          Kommentar

          Lädt...
          X