Ankündigung

Einklappen
Keine Ankündigung bisher.

phpMailer - es werden keine Anhänge mit gesendet

Einklappen

Neue Werbung 2019

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

  • phpMailer - es werden keine Anhänge mit gesendet

    Hallo an alle,

    Ich nutze den phpMailer zum versenden eines Bewerbungsformulars und möchte zu den normalen Formulardaten(Name, Anschrift, etc) jetzt, dass Bewerber ihre Bewerbung auch als PDF uploaden können und diese PDFs per Mail an den Personalchef gehen.

    Ich habe mir jetzt drei verschiedene kurz-Tutorials und die Dokumentation über den phpMailer angeschaut, nachgebaut und getestet, aber die PDFs kommen entweder gar nicht an, oder sie sind defekt.

    Hier mein Code:

    PHP-Code:

    $mail
    ->From $absender;
    $mail->FromName $vname.' '.$nname;
    $mail->AddAddress("meinemail@mail.de");
    $mail->Subject "Bewerbung von ***";
    $mail->AddAttachment($_FILES['$anschreiben_upload']['anschreiben.pdf']); //die PDF kommt aus dem inputfeld mit den Namen: anschreiben_upload              
    $mail->Body $mailtext;
    $mail->IsHTML(true);
    $mail->AltBody strip_tags($mailtext);
    $mail->CharSet  =  "utf-8";

    if(!
    $mail->Send())
    {
     
    //$mail->Send() liefert FALSE zurück: Es ist ein Fehler aufgetreten
    echo "Die Email konnte nicht gesendet werden";
    echo 
    "Fehler: " $mail->ErrorInfo;
    }
    else
    {
    //$mail->Send() liefert TRUE zurück: Die Email ist unterwegs
    echo "Die Email wurde versandt.";

    Da bei AddAttachment hauptsächlich nur dabei steht, dass man den Dateipfad vom Server angeben muss, habe ich das natürlich auch ausprobiert, allerdings wurde die Testfile auch nicht versendet:

    PHP-Code:
    $mail->AddAttachment('/img/aktuelles/jubilaeum/aktion_jubi15_header.jpg''anhang.jpg'); 
    Ich hoffe, dass mir hier jemand helfen kann.

    LG

    Anna

  • #2
    Hi,

    probier mal:

    PHP-Code:
    $mail->AddAttachment($_FILES['anschreiben_upload']['tmp_name'], $_FILES['anschreiben_upload']['name']); 
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      Hey,
      das ging ja fix, danke schon mal.
      Es kann sein, dass meine Frage jetzt etwas doof klingt aber:
      muss ich 'tmp_name' und 'name' durch irgendwas ersetzten?

      Kommentar


      • #4
        Das
        PHP-Code:
        $mail->AddAttachment($_FILES...) 
        Ist in höchstem Masse gefährlich.

        Du musst nach dem upload prüfen ob auch das ankommt was ankommen soll, sonst kann da jemand sonstwas hochladen und per Mail weiterschicken. Viren, Trojaner und Backdoor.exe oder sonst was für einen schädlicher Müll gelangt problemlos an den Mailempfänger, der sich bestimmt freut.

        Nachdem du das geprüft hast und abgespeichert, bindest du es ein bei AddAttachment aber vom Server und nicht direkt vom download. Da rührt nämlich dein Problem her. Die Mail wird wohl schon abgeschickt obwohl die Datei noch gar nicht vollständig da sind.

        Kommentar


        • #5
          protestix Du hast natürlich recht. Als erster Ansatz sowas mal hier:

          PHP-Code:
          foreach ($_FILES as $file) {
              if (
          $file['anschreiben_upload']['type'] == 'application/pdf') {
                  
          $source $file['anschreiben_upload']['tmp_name'];
                  
          $filename $file['anschreiben_upload']['name'];
                  
          $mail->AddAttachment($source$filename);
              } else {
                  die(
          "...nur PDF dürfen versendet werden");
              }

          while (!asleep()) sheep++;

          Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

          Kommentar


          • #6
            Alles, was in $_FILES steht, kann vom Client manipuliert werden. Also wenn du Werte in $_FILES prüfst ist das genauso wertvoll wie wenn du gar nichts prüfst. Prüfe wirklich den Datentyp und verlass dich nicht auf das, was dir der Client mitteilt.

            Kommentar


            • #7
              Ich habe mich zwischenzeitlich eingelesen und etwas herum probiert. Leider muss ich gestehen, dass ich nicht alles verstehe was so in diversen Tutorials steht und mir immer irgendwo der Zusammenhang rätzelhaft bleibt.

              Ich halte mich gerade hierran : http://wiki.selfhtml.org/wiki/PHP/An...is/File_Upload

              Nun die Frage, ob das eine gute Quelle ist?
              Und hat jemand vielleicht noch ein paar Links zu dem Thema, welche mir vielleicht weiter helfen können?

              Kommentar


              • #8
                Ja ist eine gute Quelle.
                Wenn du etwas nicht verstehst darfst du du auch fragen.

                Kommentar


                • #9
                  Ok, hier eine Sache die ich nicht verstehe: Wenn ich die eine Upload-Datei vom Temporären-Pfad auf den Server speichern will, sage ich per move_uploaded_file, welche Datei und wohin.
                  Aber (und das habe ich nirgends gefunden), von welchem Punkt starte ich meinen Dateipfad? Soll ich da vom root-Menü aus gehen, oder von der php Datei, in der ich den Pfad definiere?

                  Und noch ein Punkt: Entweder mein Pfad zu dem Ordner für die Upload-Dateien ist falsch, oder aber ich habe ein anderes Problem, da ich die Schreibrechte schon kontrolliert habe.

                  Kommentar


                  • #10
                    Du kannst vom document root ausgehen. Dann hast du immer absolute Pfade.
                    $_SERVER['DOCUMENT_ROOT'] . '/myfolder/' . $uploaded_file

                    Liegt deine Index aber in einem Verzeichnis über dem document root, Beispielsweise www, dann musst das immer mit angeben.
                    $_SERVER['DOCUMENT_ROOT'] . '/www/myfolder/' . $uploaded_file

                    Kommentar


                    • #11
                      Danke für die Hilfe und die Anstöße ^_^
                      Es hat funktioniert und ist, so weit wie möglich, recht sicher, was das Uploaden angeht.

                      Kommentar

                      Lädt...
                      X