0

SendMail mit Anhang

Ich möchte gerne meine Rechnung per Button verschicken. An die Email müsste aber dann die Rechnung als PDF. Den Befehl SendMail kenne ich und auch den Befehl um ein Dokument zu erstellen. Nur wie bekomme ich den Anhang an die Email ?

55 Antworten

null
    • Dirk_Pulver_2020
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Kleine Verfeinerung: Ich lege Dokumente ab die im Namen eine Angebots- oder Auftragsnummer (= Nummer) etc. enthalten, also z.B. "AN-10203.pdf" oder "Anhang_AN-10203.pdf". Mit der Contains-Funktion werden nur diese Files als Anhänge angehängt, die die {Nummer} enthalten:

    .....

    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 contains(myName, Nummer) then
    jj
    end
    end do
    item(files(this), ff)
    end

    .....

    • dogsch
    • vor 4 Jahren
    • Gemeldet - anzeigen

    ist zwar ein alter Thread, jedoch will ich dasselbe erreichen - mit der hier genannten Lösung bekommen ich einen Fehler "Not supported on client side".

    Wo liegt hier der Fehler?

    Danke & Gruß

    OttoGeorg

    • dogsch
    • vor 4 Jahren
    • Gemeldet - anzeigen

    ok, habe jetzt gefunden, dass sendMail nur in der CloudVersion funktioniert

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo OttoGeorg,

    die sendEmail() - Funktion ist nur für den Web/Cloud Konten verfügbar. Wenn du keinen Cloud Abo hast und nur in der App arbeitest, wird es nicht gehen. Das ist keine Abzoke - Ninox nutzt für sendEmail eine externe dienst und diese funktioniert nur im Internet mit den Ninox.com - server.

    Leo

    • dogsch
    • vor 4 Jahren
    • Gemeldet - anzeigen

    habe ich auch nicht als Abzocke verstanden bzw. sehe ich es auch nicht als solches an ;-)

    • VVW-Internethandel
    • Wolf_Karl
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo zusammen ich habe hierzu auch eine Frage:

    ich generiere meine Rechnungen über einer Schaltfläche Rechung erstellen

    z.B. 

    'Eingabe beenden' := false;
    for i in Rechnungspositionen do
    let myLO := first(select LagerOrte where Produkte = i.Produkte);
    let myLB := (create 'Lager Buchungen');
    myLB.(Lager := myLO);
    myLB.(Artikelmenge := -1 * i.VEMenge);
    myLB.(Artikelmenge := -1 * i.Menge);
    myLB.(Auswahl := 6)
    end;
    let myFileName := "Rechnung_" + 'ID-Nr' + "_vom_" + format(if 'Datum der Rechnungsstellung' then
    'Datum der Rechnungsstellung'
    else
    today()
    end, "YYYY-MM-DD") + ".pdf";
    importFile(this, printAndSaveRecord(this, "Rechnung"), myFileName);
    Rechnung := myFileName;
    let antwort := dialog("Rechnung als Anhang", "Soll diese Rechnung als Dateianhang erstellt werden?", ["Ja", "Nein"]);
    if antwort = "Ja" then
    let DateiName := "Rechnung " + 'ID-Nr' + ".pdf";
    let DateiAnhang := importFile(this, printAndSaveRecord(this, "Rechnung"), DateiName);
    alert("Die Rechnung wurde angehängt.")
    end

     

    mit einem weiteren möchte ich dann die erstellte Rechung per Email versenden.

    dieses hier beispiel von hier-

    nun möchte ich nicht nochmals ein printAndSaveRecord ausführen

    sondern das von oben gespeicherte Dokument verwenden, das dann automatisch übernommen wird.

     

    let DateiName := 'ID-Nr' + ".pdf";
    let DateiAnhang := importFile(this, printAndSaveRecord(this, "Rechnung"), DateiName);
    sendEmail({
    from: "......",
    to: Kunde.'E-Mail',
    cc: "",
    subject: "Rechnung " + " " + DateiName,
    text: "Moin, anbei meine Rechnung " + DateiName + ". Grüße, Ihr Lieferant",
    attachments: DateiAnhang
    })

    gruß Wolf

    • VVW-Internethandel
    • Wolf_Karl
    • vor 3 Jahren
    • Gemeldet - anzeigen

    ich würde gerne noch ein festes Dokument mit in die Email hinzufügen, das ich in einer Tabelle hinterlegt habe
    über

    gruss Wolf

    importFile(this, " ") <- kann man hier eine Datensatz ansprechen

    ########

    let DateiName := 'ID-Nr' + ".pdf";
    let DateiAnhang := importFile(this, printAndSaveRecord(this, "Rechnung"), DateiName);
    let DateiWrb := importFile(this, "");
    let DateiAgb := importFile(this, "");
    sendEmail({
    from: "karlwolf536@hotmail.com",
    to: Kunde.'E-Mail',
    cc: "",
    subject: "Rechnung " + " " + DateiName,
    text: "Moin, anbei meine Rechnung " + DateiName + ". Grüße, Ihr Lieferant",
    attachments: DateiAnhang + DateiWrb + DateiAgb 
    }) 

     

    Bildschirmfoto 2020-05-07 um 10.57.52

    • Dirk_Pulver_2020
    • vor 3 Jahren
    • Gemeldet - anzeigen

    ja, mit der Funktion importFile(this, " ") kann man das tun, man muss lediglich das "this" durch den Verweis auf den Ziel-Datensatz, wo das Attachment dran hängt, austauschen. Also z.B:

    let t := first(select Attachmentstabelle where ReNr = x)

    importFile(t,x+".pdf")

    So oder so ähnlich kann man das gestalten....

    • Dirk_Pulver_2020
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ach so - und beim Mail senden gibt man dann

    sendEmail({
    from: absadr,
    to: Kunde.Email,
    subject: "Betreff...",
    text: "Mailtext...",
    attachments: files(fs),
    });

    Wobei 'fs' hier der Zeiger auf den Datensatz mit dem Attachment liegt.

    • VVW-Internethandel
    • Wolf_Karl
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Danke Versuch ich gleich. Gibt's auch für den Versand eine Lösung auf die erste Anfrage von mir Gruss wolf

    • Dirk_Pulver_2020
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ja, eben meine zweite Antwort zielt genau darauf ab, dass man eine einmal gespeicherte Datei wieder versenden kann

    • VVW-Internethandel
    • Wolf_Karl
    • vor 3 Jahren
    • Gemeldet - anzeigen

    hmm dann versteh ich die Umsetzung nicht.

    den code in meiner ersten Anfrage möchte ich nicht ändern, da dieser top ist.
    dieser bucht mir meinen Lagerbestand und erstellt mir meine Rechnung als PDF

    ####

    in der zweiten anfrage wird die rechnung nochmals generriert was ja nicht nötig ist da diese bereits vorhanden ist.
    Die Rechnung soll nicht nochmals neu gerneriert werden, da ich die Rechnung nochmals prüfe bevor ich diese per Emal versende.

    als Anhang wollte ich dann aus einer Untertabelle die AGB und WRB als Anhang mit einfügen die kostant ist.
    (wird nur geändert wenn nötig)

    let t := first(select Attachmentstabelle where ReNr = x)importFile(t,x+".pdf")

    (t,x+".pdf") = ???? muss hier noch etwas verändert werden ?

    und fils(fs) = ???? hast du zwar beschrieben weiss aber nicht was ich einfügen soll -(

     

    Attachmentstabelle =ReDokumente.wrb.     <= funktionsfeld
    Attachmentstabelle =ReDokumente.agb      <= funktionsfeld 

    Bildschirmfoto 2020-05-07 um 20.40.29

    RENr = 'ID-Nr'

    funktioniert dann aber leider nicht es wird ein fehler ausgegben auf den ich nicht komme siehe BILD ;-(

    entschuldige mich vielmals Gruss Wolf

    Bildschirmfoto 2020-05-07 um 20.36.37

    • Dirk_Pulver_2020
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Nein, files(t) liefert schon alle Anhänge der Attachmentstabelle. Wenn man eine bestimmte daraus benötigt, dann müsste die heißen

    ...

    attachments: for ff in for jj from 0 to cnt(files(t)) do
    let ii := item(files(t), jj);
    let IN := index(text(ii), "/") + 1;
    let myName := substr(text(ii), IN);
    if contains(myName, x) then
    jj
    end
    end do
    item(files(t), ff)

    • mac338
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ich würde es mit Integromat umsetzten. das ist relativ einfach. Und der Mailversand ist zuverlässiger als direkt über Ninox

    • VVW-Internethandel
    • Wolf_Karl
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Dirk danke für deine Hilfe aber irgendwie steh ich gerade im Buchstabensalat.

    ich bekomme nicht das was ich benötige, umgesetzt 

    Ich möchte nur die im Datensatz erstellte Rechnung einfügen und aus einer anderen Tabellen die AGB und Wrb hinzufügen.

    gruss Wolf

    • VVW-Internethandel
    • Wolf_Karl
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hmm hab mich bei integromat angemeldet wie muss ich dort vorgehen

    • VVW-Internethandel
    • Wolf_Karl
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Oh hmm komm da auch nicht weiter schade 

    • Dirk_Pulver_2020
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ja Karl, ich habe verstanden, dass Du auf zuvor abgelegte Anhänge zugreifen möchtest und die versenden. Genau das macht das Script - in der Version jetzt aus einer Tabelle. Wie man an eine Mails Anhänge aus mehreren Tabellen anhängt, das müsste ich auch erst herausfinden.....

    • VVW-Internethandel
    • Wolf_Karl
    • vor 3 Jahren
    • Gemeldet - anzeigen

    d.h das dein Code nicht weiter verändert werden muss das dieser funktioniert ?

    versteh ich das richtig und würde dann die Rechung aus der Tabelle Rechnungen in die Tabelle einfügen.

    • VVW-Internethandel
    • Wolf_Karl
    • vor 3 Jahren
    • Gemeldet - anzeigen

    6ECC6C8C-88CA-4504-B50B-21CB1E3F12FE

    • VVW-Internethandel
    • Wolf_Karl
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Doppelte sendEmail gelöscht

    • Dirk_Pulver_2020
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ja, so sollte es sein :-)

    • VVW-Internethandel
    • Wolf_Karl
    • vor 3 Jahren
    • Gemeldet - anzeigen

    HALLO DIRK, irgendwas passt nicht wenn ich den Code nicht ändern soll

    6B070C5F-A9B7-4ED7-AFE9-927AEAF06FE7

    • Dirk_Pulver_2020
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ja, du speicherst oben die erzeugte PDF-Datei in die jetzige Tabelle ab "importFile(this,printAndSaveRecord...)" - willst sie aber später aus der Rechnungs-Tabelle (t) holen. M.E. müsstest Du diese dann auch dort ablegen mit "importFile(t,printAndSaveRecord....")

    • VVW-Internethandel
    • Wolf_Karl
    • vor 3 Jahren
    • Gemeldet - anzeigen

    hmm vielleicht habe ich eine falsche Ausage gemacht -  

    die Dokumente liegen alle oben in dem Dateinordner und werden dann als Bild eingefügt.

Content aside

  • vor 1 JahrZuletzt aktiv
  • 55Antworten
  • 15526Ansichten
  • 1 Folge bereits