Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 18 Nächste Version anzeigen »

Releases

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

Ü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)).

Es ermöglicht insbesondere die Umleitung aller E-Mails zu Testzwecken oder auf Testumgebungen sowie die Archivierung aller versandten E-Mails inkl. Dateianhänge zu Dokumentationszwecken.

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

Version 1.1.2

Beschreibung von Version 1.1.2

ThemaBeschreibung
Email Umleitung

Für den Testbetrieb kann die E-Mail Umleitung aktiviert werden. Dabei werden alle ausgehenden E-Mails auf eine festgelegte Adresse umgeleitet.

In der E-Mail steht zusätzlich, an wen diese eigentlich gegangen wäre.

Email ProtokollAlle zu versendenden und alle versendeten E-Mails werden im E-Mail-Protokoll (unter System) gespeichert. Das Speichern der versendeten Emails kann in den Nucletparametern ausgeschaltet werden.
Email Queue

Für den E-Mail-Versand gibt es zwei verschiedene Möglichkeiten:

Sofort versenden

Die E-Mail wird sofort versendet. Ist der Versand von einem Benutzer angestoßen (z.B. durch einen Statuswechsel, der einen E-Mail-Versand auslöst), so muss er warten, bis dieser Vorgang abgeschlossen ist, bevor er weiter arbeiten kann. Kommt es beim E-Mail-Versand zu einem Fehler, so wird die gesamte Aktion (z.B. Statuswechsel) des Benutzers rückgängig gemacht.

Versand über Email Queue

Die E-Mail wird erst im E-Mail-Protokoll als nicht versendete E-Mail gespeichert und erst durch einen regelmäßig laufenden Job versendet (Administration > Jobsteuerung > Versende Emails). Dieser muss natürlich aktiviert sein. Der Benutzer wird dadurch bei seiner Bearbeitung nicht unnötig lange aufgehalten und ein fehlerhafter E-Mail-Versand führt nicht zum Abbruch seiner Aktion.

Email Empfang

Der Job EMailEmpfang erzeugt für neue E-Mails auf dem in den IMAP-Systemparametern angegebenen Server einen Eintrag im E-Mail-Protokoll mit den Flags Versendet = false, Empfangen = true, Verarbeitet = false.
Das Flag Verarbeitet kann nach der erfolgreichen Weiterverarbeitung der Mail auf true gesetzt werden.

Verwendung in RegelnDie Klasse EmailVersand stellt zwei Methoden bereit

Verwendung in der Regelprogrammierung von Version 1.1.2

Klasse EMailVersand
static void sendMail(EMailContext context)
Versendet die im context definierte E-Mail
static void sendMailNow(EMailContext context)
Versendet die im context definierte E-Mail sofort, unabhängig von den Einstellungen in den Nucletparametern
Klasse EMailContext
void addRecipient(String address, int type)
Fügt einen Empfänger hinzu (type = To, CC oder BCC)
void addRecipient(String address)
Fügt einen Empfänger hinzu (To)
void addRecipients(List<String> lRecipients, int type) 
Fügt eine Liste von Empfängern hinzu (type = To, CC oder BCC)
void addRecipients(List<String> lRecipients)
Fügt eine Liste von Empfängern hinzu (To)
void addAttachment(NuclosFile file) 
Fügt einen Anhang hinzu
void addAttachments(List<NuclosFile> lAttachments)
Fügt eine Liste von Anhängen hinzu
void setReplyTo(String replyTo)
Definiert (vom Sender abweichende) Antwortadresse
void setMessage(String message)
Definiert die E-Mail-Nachricht
void setSubject(String subject)
Definiert den E-Mail-Betreff
void setReference(String reference)
Definiert eine Referenz. Das kann z.B. eine Auftragsnummer sein. Die Referenz hat keinen Einfluss auf die E-Mail, hilft aber, E-Mails im Protokoll wiederzufinden, die zu einem bestimmten Auftrag gehören.
void resetAttachments()
Leert die Liste der Anhänge
void resetRecipients()
Leert die Liste der Empfänger
Beispiel (E-Mail-Versand)

EMailContext context = new EMailContext();
context.addRecipient(auftrag.getKundeBO.getEmailadresse());
context.addRecipient("chef@firma.de", EMailContext.BCC);
context.addAttachment(auftrag.getRechnung());
context.setSubject("Rechnung für Auftrag " + auftrag.getAuftragsnr());
context.setMessage("...");
context.setReplyTo("kundenservice@firma.de");
context.setReference(auftrag.getKundeBO().getKundennr());
EMailVersand.sendMail(context);
Beispiel (E-Mail-Empfang)

Query<EMailProtokoll> query = QueryProvider.create(EMailProtokoll.class);
query.where(EMailProtokoll.Empfangen.eq(Boolean.TRUE));
query.where(EMailProtokoll.Empfangeneemailverarbeitet.eq(Boolean.FALSE));
for (EMailProtokoll email : QueryProvider.execute(query)) {
process(email, context);
email.setEmpfangeneemailverarbeitet(Boolean.TRUE);
email.save();
}

Integration von Version 1.1.2

Die Integration nach erfolgtem Nucletimport (siehe Nuclet Import) ist wie folgt vorzunehmen.

SchrittBeschreibungScreenshot
1

Konfigurieren Sie die Nuclos Parameter für die Nutzung des MailProviders in Nuclos (unter Administration > Parameter): 

  • SMTP Authentication
  • SMTP Username
  • SMTP Password
  • SMTP Server
  • SMTP Sender

Siehe dazu auch Email (SMTP/IMAP/Pop3).

2

Konfigurieren Sie die Nuclet Parameter des Nuclets Emailversand (unter Konfiguration > Nuclet Management)

NameBeschreibung

Email Absender

Absender der E-Mails
Email Betreff PrefixOptionales Prefix für die Betreffzeile aller Nuclos-Mails (OFF = kein Prefix)
Email Nachricht AbschlussOptionale Abschlussformel der Nachricht (OFF = kein Abschluss)
Email Nachricht SignaturOptionale Signatur der Nachricht (OFF = keine Signatur)
Email sofort versendenE-Mails  werden sofort versendet und nicht in der E-Mail-Queue zwischen gespeichert (Y/N)
Email UmleitungAlle E-Mails werden umgeleitet (Y/N)
Email Umleitung aufZiel der Umleitung
Versendete Emails löschenErfolgreich versendete E-Mails aus dem Email-Protokoll löschen
Empfangene Emails löschenEmpfangene E-Mails werden vom Mail-Server gelöscht

Version 1.1.0

Integration / Beschreibung von Version 1.1.0

Die Integration nach erfolgtem Nucletimport (siehe Nuclet Import) ist wie folgt vorzunehmen.

SchrittBeschreibung
1

Konfigurieren Sie die, für die Nutzung des MailProviders in Nuclos erforderlichen, SMTP-Systemparameter (mindestens SMTP Authentication, SMTP Username, SMTP Password, SMTP Server, SMTP Sender). Siehe dazu auch Email (SMTP/IMAP/Pop3).

2

Konfigurieren Sie die durch Nuclos zu setzende From/ReplyTo-Adresse im Nucletparameter "Email Sender Address". Aktivieren oder deaktivieren Sie desweiteren wie gewünscht die Umleitung in den Nucletparametern "Email Forwarding" ("Y" oder "N") und "Email Forwarding Address". Ist die Umleitung aktiviert, werden alle E-Mails, die über dieses Nuclet versandt werden, nicht an den eigentlichen Empfänger gesandt, sondern an die in "Email Forwarding Address" angegebene Adresse umgeleitet. Auf diese Weise lässt sich die Umsetzung automatisch zu versendender E-Mails in Ihrem eigenen Nuclet einfach testen, bzw. es lässt sich damit ein Testsystem leicht so konfigurieren, dass es keine E-Mails an Ihre Kunden oder Lieferanten sendet.

3Passen Sie die zu verwendende Signatur in der Klasse EMailSignatur an Ihre Anforderungen an.
4

Nutzen Sie die neu gewonnene Funktionalität durch Versand von E-Mails z.B. an Ihre Kunden und Lieferanten. Dazu stehen Ihnen folgende Methoden zur Verfügung:

EMailVersand.sendEmail(String sRecipient, String sSubject, String sMessage, NuclosFile attachment, String lang)
EMailVersand.sendEmail(List<String> lRecipient, String sSubject, String sMessage, NuclosFile attachment, String lang)
EMailVersand.sendEmail(List<String> lRecipient, List<String> lRecipientCC, List<String> lRecipientBCC, String sSubject, String sMessage,
List<NuclosFile> lAttachment, String lang)

Über diese Methoden versandte E-Mails werden unter dem Menüpunkt System | E-Mail-Protokoll abgelegt und archiviert. Denken Sie daran, Ihre Anwender bei Bedarf für diesen Menüpunkt lesend zu berechtigen.

Beispiel:

String sSubject = "Ihre Rechnung";
String sMessage = "Im Anhang erhalten Sie Ihre Rechnung";
(new EMailVersand()).sendEmail(kunde.getEmailadresse(), sSubject, sMessage, pdfInvoice, "de");
  • Keine Stichwörter