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
-
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.....
-
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
-
ok, habe jetzt gefunden, dass sendMail nur in der CloudVersion funktioniert
-
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
-
habe ich auch nicht als Abzocke verstanden bzw. sehe ich es auch nicht als solches an ;-)
-
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
-
ich würde gerne noch ein festes Dokument mit in die Email hinzufügen, das ich in einer Tabelle hinterlegt habe
übergruss 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
})
-
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....
-
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.
-
Danke Versuch ich gleich. Gibt's auch für den Versand eine Lösung auf die erste Anfrage von mir Gruss wolf
-
Ja, eben meine zweite Antwort zielt genau darauf ab, dass man eine einmal gespeicherte Datei wieder versenden kann
-
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 <= funktionsfeldRENr = 'ID-Nr'
funktioniert dann aber leider nicht es wird ein fehler ausgegben auf den ich nicht komme siehe BILD ;-(
entschuldige mich vielmals Gruss Wolf
-
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) -
Ich würde es mit Integromat umsetzten. das ist relativ einfach. Und der Mailversand ist zuverlässiger als direkt über Ninox
-
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
-
Hmm hab mich bei integromat angemeldet wie muss ich dort vorgehen
-
Oh hmm komm da auch nicht weiter schade
-
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.....
-
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.
-
-
Doppelte sendEmail gelöscht
-
Ja, so sollte es sein :-)
-
HALLO DIRK, irgendwas passt nicht wenn ich den Code nicht ändern soll
-
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....")
-
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 2 JahrenZuletzt aktiv
- 55Antworten
- 15830Ansichten
-
1
Folge bereits