0

Unterschrift.png wird bei SendMail mit einem unterschriebenen PDF nochmal mitgesendet?!

Hi...

Irgendwie habe ich ein Problem, dass ich mir grad nicht erklären kann:

Wenn ich ein PDF via SendMail raus schicke klappt alles soweit. Bezeichnung des/der PDFs die hinten im Dateianhang hängen sind OK und alle PDF werden ordnungsgemäss versendet.

Allerdings wird die Unterschrift.png ebenfalls als Extra.png File mit der Mail gesendet. Das ist A doof und B hängt die Unterschrift.png hinten auch gar nicht dran.

(Ich weiss mittlerweile, dass dies passiert wenn man eine Unterschrift löscht und neu unterschreibt. Dann wird die alte abgespeichert und hängt manchmal hinten dran. Aber ich habe einen frischen Datensatz begonnen und frisch unterschrieben (HARALD gibts natürlich nicht).

Das finde ich grad merkwürdig....

So kommt die Mail nun beim Empfänger an:

14 Antworten

null
    • Pyromixer.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hmm... Auch PDF in denen Fotos drin vorkommen werden als PDF mit den Fotos und die Fotos dann noch mal einzeln raus gesendet....

    Liegt das Problem hier evtl?.: attachments: files(this)

    Muss ich bei SendMail explizit angeben welche Dateien genau versendet werden? Ich weiss ja den Namen der PDF nicht vorher, weil der beim generieren aus mehreren Feldern erstellt wird und die dann so benannt im Dateianhang hängen.

    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hi,

     

    jepp, files(this) ist der Urheber. Den PDF-Namen definierst Du doch im gleichen Skript, in dem Du auch die Mail versendest - insofern kannst Du den dort auch so verwenden...

     

    lg, Torsten

    • Pyromixer.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hmm....

    Das hatte ich ursprünglich mal so. Da gabs aber immer ein Problem, dass er die Files nicht korrekt raus sendete. Erst als ich "PDF generieren" und "Mail senden" über 2 Buttons realisiert hatte klappte es mit dem mailen. Ich meine, dass Ninox SendMail schneller auf die Files zugreift als Ninox sie generieren kann. Das war glaube ich der Fehler weswegen ich das getrennt hatte.

    Aber ich könnte sie ja zweimal generieren... Also nochmals im SendMail Script. Sollte es wieder zu schnell sein, liegen die selben Dateien ja dort.... Ich probiere mal herum, so wie jetzt gehts auf keinen Fall....

    • Pyromixer.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Also ich habe ja eine Besonderheit drin beim generieren der PDF Anhänge: Es sollen nur die PDF erstellt werden welche auch benötigt werden. Dazu habe ich eine Abfrage drin, die das prüft. Dann erhalte ich mehrere PDF mit verschiedenen Namen oder eben nur eines, oder zwei oder oder....

    Dann will ich den Haufen versenden. Und es kommt leider immer der Bilderkram, Unterschrift einzeln mit. Wie könnte ich das verhindern, ich steig nicht mehr mehr durch.

     

    Hier das Script vom Sinn her welches die PDF generiert und dann als Mail absenden soll. Vielleicht weiss ja jemand wie ich SendMail die korrekte Anweisung geben könnte:

     

    dialog("Die PDF Berichte werden nun generiert", "Sind Sie wirklich sicher?", ["Abbrechen", "OK"]) = "OK" then

    importFile(this, printAndSaveRecord(this, "Bericht1"), "B1 " + 'Auftragsnummer' + ".pdf")

    end;

     

    if 'Foto-Bericht Entrys vorhanden?' = true then

    importFile(this, printAndSaveRecord(this, "FotoBericht"), "Foto-Bericht" + 'Auftragsnummer' + ".pdf") + ('Foto-Bericht generiert?' := true)

    end;

     

    if 'Bericht2 Entrys vorhanden?' = true then

    importFile(this, printAndSaveRecord(this, "Bericht2"), "B2 " + 'Auftragsnummer' + + ".pdf") + ('Bericht2 generiert?' := true) 

    end;

     

    +

     

    sendEmail({

    from: "my-email@adresse.de",

    to: Kunde',

    subject: 'Ihr Bericht',

    text: 'Ihr Bericht bla bla bla',

    html: raw('Ihr Bericht bla bla bla'),

    attachments: files(this),

    })

    • Pyromixer.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Einfacher gesagt: Es soll nur gemailt werden was ich auch hinten in den Anhängen sehe!

    • Frank_Schafer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo,

    wenn du der PDF einen festen Namen zuweisen kannst (z. B. Rechnung_XXNRXX.pdf für eine Rechnung mit der Nummer aus dem Datensatz) kannst du den PDF-Namen ja in beiden Funktionen die gleiche Logik nutzen und brauchst die PDF nicht noch ein 2. mal zu erstellen.

    Sollte das nicht gehen kannst du ja den Dateinamen des PDFs bei der Erstellung ja in einem Tabellenfeld speichern und beim Versand daraus für die Auswahl der richtigen Datei entnehmen.

    VG Frank

    • Pyromixer.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Sollte das nicht gehen kannst du ja den Dateinamen des PDFs bei der Erstellung ja in einem Tabellenfeld speichern und beim Versand daraus für die Auswahl der richtigen Datei entnehmen.

     

    Ich probiere und probiere... Geht nicht.

    Entweder "die Funktion ist nicht definiert" oder sonstige Fehlermeldungen, Klammern die angeblich fehlen usw. Mein Problem ist vor allem, dass ich nicht weiss wie der String eigentlich lauten bzw. aussehen soll hinter "attachements:"

    Ich kopiere dies und das aus dem "genieren String" dahinter, das will er aber alles nicht.... :-(

    • Frank_Schafer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo,

    hinter attachments: erwartet Ninox ein Array mit Dateinamen. Du kannst dier also z. B. die Dateien in einem mit Trennzeichen getrennten Text sammeln und dann mit split() in ein Array umwandeln - z. B. :

    var meineDateien := "";
    var dateien := files(this);
    if contains(text(dateien), "B1 " + 'Auftragsnummer' + ".pdf") then
      meineDateien := "B1 " + 'Auftragsnummer' + ".pdf";
    end;
    if contains(text(dateien), "B2 " + 'Auftragsnummer' + ".pdf") then
      if meineDateien != "" then
        meineDateien := meineDateien + ";"
      end;
     
    meineDateien := "B2 " + 'Auftragsnummer' + ".pdf";
    end;
    if contains(text(dateien), "B3 " + 'Auftragsnummer' + ".pdf") then
      if meineDateien != "" then
        meineDateien := meineDateien + ";"
      end;
      meineDateien := "B3 " + 'Auftragsnummer' + ".pdf";
    end;
    sendEmail({
      from: "my-email@adresse.de",
      to: Kunde',
      subject: 'Ihr Bericht',
      text: 'Ihr Bericht bla bla bla',
      html: raw('Ihr Bericht bla bla bla'),
      attachments: split(meineDateien, ";")
    })

    VG Frank

    • Pyromixer.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Danke...

    Aber ich gebs auf... Mail kommt aber immer ohne Anhang nun...

    • Pyromixer.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Es kommt, egal was auch immer ich für Vorschläge aus diesem Forum versuche kein Anhang mit der Mail mit. Ausser bei "files(this)" und dann eben auch der ganze Müll den ich nicht haben möchte. Wieso gibts denn keinen Befehl der einfach nur raus schickt was auch sichtbar dran hängt?

     

    Anderer simpler Versuch:

    Die Angabe nur eines Dateinamens wie z.B. "lala.pdf" welches existiert, bringt nichts. Dann kommt das PDF nicht mit raus. Obwohl es hier x-mal so beschrieben steht. Es wird nicht an die Mail angehangen.

    Zum Beispiel: attachments: lala.pdf (geht nicht)

     

    Copytexters Version mit einem variablen Dateinahmen geht teilweise. Da wird ein zerstückeltes PDF im Dateianhang angehangen und es kommt teilweise mit der Mail raus. Wird aber nicht richtig angezeigt, da wohl irgendwas zerhackt wurde.

    So frustriert über das ganze Zeug war ich lange nicht mehr.....

    • Pyromixer.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    In der Browser Version funktioniert einiges... Was ist das denn nun?

    • Frank_Schafer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo,

    wenn bei dir etwas nicht funktioniert das bei anderen anscheinend problemlos ist dann wende dich doch einfach mal an den Ninox-Support - dann könnt ihr gemeinsam in deiner Datenbank nachschauen, woran das liegt. Irgendwann sind die Möglichkeiten eines Forums auch am Ende.

    VG Frank

    • Pyromixer.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Sorry... Alles gut... War heute Nacht einfach fertig mit den Nerven :-) So viele Stunden alles probiert. Nix für ungut, ich danke auf jeden Fall für die Hilfestellung! Der Versand der korrekten Dateianhänge ist die entscheidende Nummer bei meiner Anwendung. Wenn das nicht funktioniert hätte, wäre die gesamte Arbeit bisher sinnlos gewesen.

     

    Ich habe nach einer ordentlichen Mütze Schlaf nochmal das Forum durchforstet und bin auf eine Lösung von Leo gestossen die zwar einen anderen Ansatz eines anderen Users verfolgte aber mit der auch mein System nun wunderbar funktioniert:

    Hier mal der Code von Leo:

    ---

    sendEmail({
    from: userEmail(),
    to: "max.mustermann@email.com",
    subject: "Text",
    text: "Hier der Text",
    html: "<b> Hier der Bilder",
    attachments: for ff in for jj from 0 to cnt(files(this)) do
    let ii := item(files(this), jj);
    let IN := index(text(ii), "/") + 1;
    let myName := substr(text(ii), IN);
    if substr(myName, 0, 2) = "AN" or substr(myName, 0, 2) = "LA" then
    jj
    end
    end do
    item(files(this), ff)
    end
    })

    ---

     

    Und zwar wird hier nur nach den ersten beiden Buchstaben einer Datei im Anhang gesucht. Trifft eine 2er Kombi zu oder mehrere, dann werden nur diese per SendMail versendet. Und das funktioniert auch nun tadellos. Ich musste lediglich mein Dateien Benennungsschema etwas anpassen und vorne 2 Schlüsselbuchstaben für meine jeweiligen Dokumente vergeben nach einem Muster wie diesem: (AF_Mein Auftrag.pdf), (PR_Mein Protokoll.pdf), (SP_Mein Schaltplan.pdf) usw.

     

    Hat auch noch den Vorteil, dass ich im kleinen Dateianhangfenster von Ninox nun auch besser sehe welche Dateien drin sind weil man die ersten Buchstaben ja nun sieht. Der weitere Vorteil ist, dass man die Dateinamen hinter den beiden Schlüsselbuchstaben jederzeit auch mal abändern kann ohne wieder im Code herumwühlen zu müssen um alles neu anzupassen. Auch mit weiteren Dokumenten später zu erweitern ist nun sehr einfach.

     

    Allerdings habe ich nicht die geringste Ahnung wie genau Leos Ding funktioniert. Aber Hauptsache es funktioniert :-)

    • Pyromixer.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Die "Erweiterungen" werden einfach durch weiteres einfügen des Strings: >>>or substr(myName, 0, 2) = "XY"<<< hinzugefügt und schon werden alle Dateien mit XY als erste beiden Buchstaben mit versendet.