In Tickets sind viele Trigger und Comfortfunktion zum E-Mail-Versand inkludiert, dass macht die App wirklich zu keinem guten Beispiel 😃 (vielleicht ist Abwesenheit hier der bessere Showcase).
Theoretisch ist das Senden von E-Mail gar nicht so schwer - wenn das getriggert passieren soll, brauchst du dafür auch keine Frontend Funktion sondern nur eine im Backend.
Text:
Theoretisch solltest du für den Text in der E-Mail ein Template erstellen und das nicht nicht in der Funktion stehen haben (das lässt sich einfach viel leichter anpassen) - ich empfehle dir, dir dafür eine neue Relation anzulegen.
Verwende dann einen Platzhalter wie etwa [LINK] - wenn du einen Link zum Datensatz erstellen willst
Funktion: Du benötigst eine Backend Trigger Funktion für dein Vorhaben. Diese Funktion musst du auch in der Relation als Trigger (After oder Before) hinterlegen. Wenn die E-Mail nur bei neuen Bestellungen gesendet werden soll, reicht es diesen auf "Insert" zu lassen. -Je nachdem von welchen Relationen zu welcher Zeit du deine Daten holst, musst du den Trigger nachgelagert als "After" Trigger laufen lassen.
Ich habe dir mal eine vereinfachte Version erstellt - in dieser hole ich per SQL Abfrage nur den Empfänger aus einem Datensatz, alle anderen Optionen habe ich fest definiert. -Vielleicht reicht dir das schon als Hilfestellung für die grundlegende Funktion. Themen wie das Hinzufügen des Links würde ich danach angehen. Alles was nicht befüllt ist, ist optional (zB CC und Anhänge) und muss nicht mit Daten befüllt werden.
$BODY$
DECLARE
subject text := 'Neue Bestellung eingegangen';
body text := 'Dies ist ein Test Body';
to_list text;
cc_list text;
bcc_list text;
account_name text := 'MeinSendeAccount'; --Name deines im Adminpanel hinterlegten SMTP Accounts
attach_record_id integer; -- Solltest du Anhänge hinzufügen wollen
attach_attribute_id uuid; -- die UUID des Anhang-Attributes
BEGIN
--hole Empfänger
SELECT (test_nm_copy.node.mail) INTO to_list
FROM {test_nm_copy}.[node]
WHERE (test_nm_copy.node.id) = NEW.(test_nm_copy.node.id); --NEW. bezieht sich auf den aktuellen Datensatz
PERFORM instance.mail_send(subject,body,to_list,bcc_list,account_name,attach_record_id,attach_attribute_id);
RETURN 0;
END;
$BODY$
Die Idee für ein Tutorial-Video nehme ich gerne mit auf - ich denke aber, dass einige andere, grundlegendere Themen da zu erst dran kommen müssen.