Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

VersionDatumHinweiseKompatibilität
1.1.013.02.2018Erste veröffentlichte Fassungab Nuclos 4.25.1
1.1.204.07.2019E-Mail Queue und verbesserte APIab Nuclos 4.33.8
1.1.317.12.2021E-Mail-Templatesab Nuclos 4.47.3

Überblick

Das Nuclet "E-Mail-Versand" bietet zusätzlichen Komfort bei der Nutzung der Nuclos Mail API (siehe http://api.nuclos.de/org/nuclos/api/provider/MailProvider.html#send(org.nuclos.api.mail.NuclosMail)).

...

Außerdem gibt es einen Job zum Empfang von E-Mails.

Version 1.1.3

Beschreibung von Version 1.1.3

ThemaBeschreibung
E-Mail Template

Das BO E-Mail-Template bietet die Möglichkeit, Vorlagen für E-Mails zu erstellen, die dann aus Regeln heraus versendet werden können. Ein Administrator hat damit die Möglichkeit, die von Nuclos versendeten E-Mails selbst zu gestalten und kurzfristig zu ändern. Die Templates bieten hierzu viele Möglichkeiten:

  • Der Zugriff auf beliebig weit referenzierte Attribute aus einem frei wählbaren Basis-BO (z.B Auftrag), ähnlich wie bei Nuclos-Formularen
  • Verschiedene Quellen von Adressen (Attribut, Nucletparameter, Benutzer, Benutzergruppe, ...)
  • Verschiedene Quellen von Anhängen (Datei, Formular, ...)
  • Verschiedene Sprachen von Betreff, Nachricht und Anhang
  • Textbausteine
  • E-Mail-Empfänger, die E-Mail-Adresse, Anrede und Sprache der E-Mail bestimmen
  • Standardisierte und konfigurierbare Footer und Signaturen
  • Vorschau und Test des Templates

Komplexere E-Mail-Bestandteile, wie z.B. eine Tabelle mit allen Auftragspositionen, müssen durch eine Regel unterstützt werden.

E-Mail Baustein

Können Bausteine definiert werden, die dann in den E-Mail-Templates zur Verfügung stehen. Möglich sind

  • Reine (mehrsprachige) Standard-Textbausteine (AGB, Versandinfos, Signatur, ...)
  • Komplexe Bausteine, die eine Regelunterstützung benötigen (z.B. Tabelle mit Auftragspositionen)
  • Bausteine, die den E-Mail-Empfänger (Adresse, Anrede, Sprache) definieren
  • Bausteine, die eine oder mehrere E-Mail-Adressen ermitteln (z.B. für Subscribe-Funktionalitäten)
  • Bausteine, die einen Anhang generieren
  • Bausteine, die eine Sprache definieren
  • Bausteine, die einen Footer oder eine Signatur bereitstellen

Zur Sicherheit lassen sich Bausteine auf bestimmte BO's einschränken, wenn z.B. wenn der Baustein Bearbeiter  für die BO's Rechnung und Auftrag existiert, aber nicht für das BO Artikel 

E-Mail SpracheDefiniert die zur Verfügung stehenden Sprachen
RegelbausteineZur Erzeugung einer E-Mail aus einem E-Mail-Template muss eine Instanz einer Klasse mit übergeben werden, die das Interface Regelbausteine  implementiert.

Konfiguration von E-Mail-Templates von Version 1.1.3


Bereich E-Mail-Template
Name Pflicht Eindeutiger Name des Templates
Basis-NucletoptionalDas Nuclet aus dem das Basis-BO kommen soll
Basis-BOoptionalDas BO, auf das sich die E-Mail bezieht (z.B. Auftrag)
Empfänger optionalEin Regelbaustein, der als Empfänger  gekennzeichnet ist und für die die Methode getRecipient()  in der Regelbaustein-Implementierung ein Ergebnis mit E-Mail-Adresse, Anrede und ggf. Sprache zurück liefert.
Footer optionalEin als Footer  gekennzeichneter Textbaustein
Signatur optionalEin als Signatur gekennzeichneter Textbaustein
Bereich Weitere Eigenschaften
Sprache (Baustein)optionalDie Sprache, in der die E-Mail versendet werden soll, definiert durch einen als Sprache  gekennzeichneten Textbaustein
Sprache (statisch)optionalDie Sprache, in der die E-Mail versendet werden soll, direkt angegeben
Html?optionalE-Mail wird im Html-Format versendet (empfohlen)
Nach Versand löschen?optionalSensible E-Mails (z.B. mit Passwort-Links o.ä.) können nach dem Versand automatisch aus dem E-Mail-Protokoll gelöscht werden
Aktiv?optionalAktiviert oder deaktiviert den Versand der E-Mails
Bereich Template-Test
ID des Basis-BOoptionalWenn ein Basis-BO angegeben ist, kann hier eine intid angegeben werden, für die die Vorschau erstellt und die Test-E-Mail versendet werden soll
SpracheoptionalHier kann die Sprache der Vorschau und der Test-E-Mail forciert werden
Empfänger der Test-E-MailoptionalWenn kein Empfänger angegeben ist, wird die E-Mail an die im Nucletparameter Email Umleitung auf hinterlegte Adresse versendet
Erzeuge Vorschau
Erzeugt eine Vorschau im Reiter Vorschau 
Sendet Test-E-Mail
Für den finalen Test kann damit eine Test-E-Mail versendet werden
Reiter Konfiguration

Betreff + Nachrichtoptional

Hier können Betreff und Nachricht definiert werden. Dabei können verwendet werden

  • Beliebiger Text
  • Datenfelder aus dem Basis-BO in der Form z.B. #{Auftragsnr} oder #{Kunde.Kundengruppe.Name}. Verfügbare Datenfelder sind als Hilfe im Reiter Verfügbare Datenfelder  zu finden
  • Textbausteine, die entweder nicht auf ein BO eingeschränkt (##{AGB}) sind oder für das Basis-BO erlaubt sind (##{Ansprechpartner}), als Hilfe zu finden im Reiter Verfügbare Textbausteine 

Für Betreff und Nachricht können alternative Texte in anderen Sprachen angegeben werden (siehe Reiter Betreffs(übersetzt) und Nachrichten (übersetzt))

Reiter Adressenoptional

Wenn ein Empfänger angegeben ist, wird die E-Mail an die dort ermittelte E-Mail-Adresse versendet. Zusätzlich oder alternativ können weitere Adressen hinzugefügt werden aus

  • direkt angegebenen Adressen (z.B. CC info@firma.de)
  • einem Nuclos Benutzer
  • allen Nuclos Benutzern einer bestimmten Benutzergruppe
  • einem Attribut des Basis-BO (oder weiter referenzierten Attributen, z.B. die E-Mail-Adresse des Zuständigen des Auftrages)
  • einem Nuclet Parameter
  • einem Baustein, der als E-Mail-Adresse gekennzeichnet ist
Reiter Anhängeoptional

Hier können Anhänge für die E-Mail definiert werden, z.B.

  • ein Report oder Formular 
  • eine im Template hinterlegte Datei
  • ein Baustein, der als Anhang gekennzeichnet ist und für den die Methode getAttachments() eine Liste von Dateien zurück liefert

Für jeden Anhang können alternative Anhänge in anderen sprachen definiert werden

Weitere
Reiter BeschreibungoptionalHier können weitere Informationen für das Template hinterlegt werden
Reiter E-Mails
Zeigt die E-Mails an, die bereits aus diesem Template generiert wurden

Verwendung von E-Mail-Templates von Version 1.1.3


Initialisierung

Nach dem Nucletimport muss einmal der Job Initialisiere Nuclet Emailversand ausgeführt werden


E-Mail-Template
Ein E-Mail-Template für eine Rechnung könnte z.B. so aussehen

Image Added

Rechnungsformular als Anhang

Image Added

Regelbaustein für einen Empfänger

Image Added

Das Interface Regelbausteine


  • Text: String getValue(String name, Modifiable<Long> bo, EMailTemplateSprache language, TemplateParameters parameters, RuleContext context)
  • Anhänge: List<NuclosFile> getAttachments(String name, Modifiable<Long> bo, EMailTemplateSprache language, TemplateParameters parameters)
  • Empfänger: TemplateRecipient getRecipient(String name, Modifiable<Long> bo, EMailTemplateSprache language, TemplateParameters parameters)
  • Sprache: NuclosLocale getLocale(EMailTemplateSprache langugage)
Beispiel (Text)

public String getValue(final String name, final Modifiable<Long> bo, EMailTemplateSprache language, TemplateParameters parameters, RuleContext context) throws BusinessException {
if (SIGNATUR.equals(name)) {
return EMailHelper.getSignature();
} else if (RECHNUNGSPOSITIONEN.equals(name)) {
return EMailHelper.getAuftragspositionen(bo, parameters, name);
}
    throw new BusinessException("Unbekannter Name für einen Regelbaustein: \"" + name + "\"");
}
Beispiel (Empfänger)

@Override
public TemplateRecipient getRecipient(String name, Modifiable<Long> bo, EMailTemplateSprache language, TemplateParameters parameters) throws BusinessException {
   if (ANSPRECHPARTNER.equals(name)) {
return EMailHelper.getTemplateRecipient(EMailHelper.getAnsprechpartner(bo, parameters, name));
} else if (BEARBEITER.equals(name)) {
return EMailHelper.getTemplateRecipient(EMailHelper.getBearbeiter(bo, name));
   throw new BusinessException("Unbekannter Name für einen Empfänger: \"" + name + "\"");
}
Beispiel (Verwendung in Regeln)
Einfachster Fall
EMailTemplate template = EMailUtils.getEMailTemplate(Konstanten.EMailTemplate.RECHNUNG);
if (template.getAktiv()) {
EMailVersand.sendMail(new EMailContext(template, new RegelBausteineImpl(), rechnung, context));
}
In einigen Fällen muss man womöglich noch zu zusätzliche Informationen an das Template weiter geben. Diese geschieht durch parameter.
EMailTemplate template = EMailUtils.getEMailTemplate(Konstanten.EMailTemplate.SERIENNUMMER);
Token token = NucletTokenUtils.getToken(seriennummer);
if (template.getAktiv()) {
EMailContext.TemplateParameters parameters = new EMailContext.TemplateParameters(EMailHelper.Parameters.TOKEN, token);
EMailVersand.sendMail(new EMailContext(template, new RegelBausteineImpl(), seriennummer, parameters, context));
}

Version 1.1.2

Beschreibung von Version 1.1.2

...