# DigiWF E-Mail-Integration
Die DigiWF E-Mail-Integration ermöglicht es Benutzern, E-Mails über die DigiWF-Plattform zu senden. Prozessentwickler können mit dieser Integration E-Mail-Kommunikation in ihre BPMN-Prozesse integrieren.
Die E-Mail-Integration ermöglicht sowohl das Senden einfacher E-Mails als auch von E-Mails mit Dateianhängen. Die Dateianhänge können aus einem S3 Bucket geladen werden. Zudem ist es möglich den E-Mail Body durch Templates zu generieren und somit ein Logo und einen Link in der E-Mail anzeigen zu lassen.
# Verwendung
Die E-Mail-Integration ermöglicht es den Benutzern von DigiWF, E-Mails aus einem Prozess heraus zu senden. Hierbei können sowohl einfache E-Mails als auch E-Mails mit Dateianhängen versendet werden. Die Dateianhänge werden hierbei aus einem S3 Bucket geladen. Zusätzlich kann direkt im Prozess auf untenstehende Fehler reagiert werden. Der Body der E-Mail kann mit reinem Text oder durch ein Template mit einem Logo und einem Link befüllt werden.
# E-Mail senden
Um eine E-Mail mit der E-Mail-Integration zu senden, muss ein E-Mail-Event an das Kafka-Topic der E-Mail-Integration
gesendet werden. Den Namen des Topics können Sie in der Konfiguration der E-Mail-Integration
unter spring.cloud.stream.bindings.functionRouter-in-0.destination
finden. Zusätzlich muss im E-Mail-Event der
Header type
auf sendMailFromEventBus
gesetzt werden.
Standardmäßig heißen die Topics dwf-email-${DIGIWF_ENV}, wobei DIGIWF_ENV die aktuelle Umgebung ist.
Nachfolgend ist ein Beispiel-Event für eine E-Mail aufgeführt:
{
"receivers": "receivers@example.com",
"receiversCc": "receivers-on-cc@example.com",
"receiversBcc": "receivers-on-bcc@example.com",
"subject": "My important email",
"body": "Some text I want to send",
"replyTo": "replyto@example.com",
"attachments": []
}
2
3
4
5
6
7
8
9
# E-Mail mit Dateianhang senden
Sie können Dateien aus einem S3 Bucket an die E-Mails anhängen, die Sie senden. Dafür müssen Sie vorab presigned URLs
für die Dateianhänge mit der S3-Integration erstellen und diese unter attachments
dem Mail-Event mitgeben. Die
E-Mail-Integration lädt die Dateien herunter und fügt sie der E-Mail vor dem Versenden als Anhang hinzu.
Hinweis: Die E-Mail-Integration unterstützt nur presigned URLs, die mit der GET-Aktion erstellt wurden. Alle anderen Dateiaktionen funktionieren nicht und führen zu einem Fehler.
Nachfolgend ist ein Beispiel-Event für eine E-Mail mit einem Dateianhang aufgeführt:
{
"receivers": "receivers@example.com",
"receiversCc": "receivers-on-cc@example.com",
"receiversBcc": "receivers-on-bcc@example.com",
"subject": "My important email",
"body": "Some text I want to send",
"replyTo": "replyto@example.com",
"attachments": [
{
"url": "http://localhost:9000/s3-bucket/some/path/to/file/image.png",
"path": "path/to/file/in/s3",
"action": "GET"
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Email mit Logo und Link senden
Das Senden einer Email mit Logo und Link funktioniert wie das oben beschriebene Senden einer E-Mail.
Der Header type
im Email Event muss jedoch auf sendMailWithLogoAndLink
gesetzt werden.
Nachfolgend ist ein Beispiel Event für eine Email mit Template aufgeführt:
{
"receivers": "receivers@example.com",
"receiversCc": "receivers-on-cc@example.com",
"receiversBcc": "receivers-on-bcc@example.com",
"subject": "My important email",
"text": "Some text I want to send",
"replyTo": "replyto@example.com",
"attachments": [],
"template": "mail-template.ftl",
"bottomBody": "Some greeting",
"buttonText": "Some button text",
"buttonLink": "example.com"
}
2
3
4
5
6
7
8
9
10
11
12
13
buttonText
und buttonLink
sind optional, müssen jedoch immer zusammen angegeben werden.
Anhänge können wie oben beschrieben übergeben werden.
# Fehlerbehandlung
Bei der Fehlerbehandlung wird zwischen BPMN-Errors und Incident-Errors unterschieden. BPMN-Errors können im Prozess behandelt werden, während Incident-Errors nicht im Prozess behandelt werden können und einen Incident erzeugen.
Nachfolgend sind die BPMN-Errors aufgeführt, die von der E-Mail-Integration geworfen werden können:
# BPMN-Error
Error Code | Error Message | Beschreibung | Handlungsempfehlung |
---|---|---|---|
VALIDATION_ERROR | Fehlermeldung der auftretenden ValidationException | Die übergebenen E-Mail-Daten sind nicht valide. | Korrigieren Sie die Daten und versuchen es erneut |
MESSAGING_EXCEPTION | Fehlermeldung der auftretenden MessagingException | Die E-Mail konnte mit den übergebenen Daten nicht erstellt werden. | Überprüfen Sie, ob die Daten valide sind und versuchen es erneut. |
MAIL_SENDING_FAILED | Fehlermeldung der auftretenden MailException | Die E-Mail konnte nicht versand werden. Es kann sein, dass die E-Mail-Adressen nicht valide sind oder ein technischer Fehler aufgetreten ist | Analysieren Sie die Fehlermeldung, korrigieren invalide E-Mail-Adressen und versuchen es erneut. |
LOAD_FILE_FAILED | An attachment could not be loaded from presigned url: attachment | Die Datei konnte nicht geladen werden | Stellen Sie sicher, dass die presigned URL nicht abgelaufen ist. Stellen Sie sicher, dass die Datei im S3 Bucket vorhanden ist |
FILE_TYPE_NOT_SUPPORTED | File type not supported of the attachment: attachment | Der Dateityp der Datei wird nicht unterstützt oder wurde nicht erkannt | Die Datei kann nicht als E-Mail-Anhang versendet werden. |
LOAD_TEMPLATE_FAILED | The template template could not be loaded | Das Template konnte nicht geladen werden. | Überprüfen Sie ob der Templatename richtig ist und versuchen Sie es erneut. |
TEMPLATE_MERGING_FAILED | Fehlermeldung der auftretenden TemplateException | Das Template konnte nicht mit den übergebenen Daten befüllt werden. | Überprüfen Sie die übergebenen Daten und versuchen Sie es erneut. |
# Konfiguration
Allgemeine Konfigurationen für DigiWF-Integrationen sind unter Eigene Integration erstellen beschrieben.
Die Konfiguration der CoSys Integration ist in der README.md (opens new window) beschrieben.