Jörg: phpmailer fügt Leerzeichen hinzu?

Hallo,

phpmailer fügt bei angehängten Dokumenten ein Leerzeichen vor die Endung und ich weiß nicht, warum. Habe schon einiges versucht, finde aber den Fehler nicht.

foreach($dokumentenDatei as $dokumenteneinzelDatei) {
//echo $dokumenteneinzelDatei."<br>";
  if(file_exists("./folder/".$dokumenteneinzelDatei)) {
     $mail->AddAttachment("./folder/".$dokumenteneinzelDatei);
      }
}

An dieser Stelle im echo-Befehl ist noch kein Leerzeichen drin.

test1_600450d3276f50492cf2a64812ae29fd136dba018a.pdf
test2_60045127f50093ec36f0bd2e3aa42633885293c0c8.pdf
6005453434da93_255.jpg

Daher weiß ich nicht, an welcher Stelle ich überhaupt noch Zugriff hätte😕

Denn später in der Mail ist bei der jpg-Datei alles ok, aber die beiden vorherigen Dokumente lauten:

test1_600450d3276f50492cf2a64812ae29fd136dba018a. pdf
test2_60045127f50093ec36f0bd2e3aa42633885293c0c8. pdf

Jörg

  1. Hallo Jörg,

    An dieser Stelle im echo-Befehl ist noch kein Leerzeichen drin.

    Vielleicht doch. Echo ist nicht sonderlich geeignet für eine Fehlersuche.

    echo "<pre>";
    var_dump (...);
    echo "</pre>";
    

    Bis demnächst
    Matthias

    --
    Du kannst das Projekt SELFHTML unterstützen,
    indem du bei Amazon-Einkäufen Amazon smile (Was ist das?) nutzt.
    1. Hallo Matthias,

      An dieser Stelle im echo-Befehl ist noch kein Leerzeichen drin.

      Vielleicht doch. Echo ist nicht sonderlich geeignet für eine Fehlersuche.

      echo "<pre>";
      var_dump (...);
      echo "</pre>";
      

      Danke für den Hinweis. Leider hat die Verwendung von var_dump kein anderes ergebnis gebracht. Auch hiermit ist kein Leerzeichen im String vorhanden. 😕

      Was kann ich denn jetzt noch tun? Da kommt ja vor dem Absenden nichts mehr 😟

      Jörg

      1. Hallo,

        könnte es sein, dass ein Mailanhang nur eine bestimmte Zeichenlänge haben darf und ansonsten ein mailserver einen zeielenumbruch erzwingt, der im HTML-Kontext dann zum Leerzeichen wird?

        Ich habe mir den Quelltext der Mail mal angesehen und festgestellt, dass im Namen des Anhangs das Leeriehce fehlt, aber in Content-Disposition: attachment; ein Zeilenumbruch meines recht langen Dateinamens ist.

        ich werde nun mal versuchen, den Dateinamen zu kürzen oder die Datei umzubenennen.

        Jörg

        1. Hallo Jörg,

          es gibt ein Issue im PHPMailer Github, das sich auf lange Dateinamen bezieht. Die Schwelle ist allerdings 76 Zeichen, da bist Du mit dem gezeigten Fall nicht dran.

          Das Issue ist von 2018, aber closed. In der Diskussion schreibt jemand: „I can confirm that this bug is still present in v6.0.7“

          Welche Version verwendest Du?

          Landet dein /folder/ eigentlich mit in der Content-Disposition? Wenn ja, solltest Du ggf. überlegen, den zweiten Parameter von addAttachment zu nutzen, um den Attachment-Namen unabhängig vom Namen auf dem Server festzulegen.

          Rolf

          --
          sumpsi - posui - obstruxi
          1. Hi Rolf,

            dann ist der Fall gelöst:

            Ich verwende eine Vers. 6.0.5 und mein String (der echt ist nicht der hier gezeigte) hatte (ich glaube) 79 Zeichen 😟

            ich arbeite gerade an meiner Lösung, danke für Deinen Hinweis.

            Jörg