CSJCurrent de:E Mail Benachrichtigungen
E-Mail-Benachrichtigungen auf Serverseite deaktivieren
Für gewöhnlich verarbeitet der Cryptshare Server alle E-Mail-Benachrichtigungen zwischen den Teilnehmern eines Cryptshare Transfers. Bei der Entwicklung einer eigenen Client-Anwendung für die Cryptshare-Kommunikation kann es jedoch erwünscht sein, die E-Mail-Benachrichtigung aus dem Client heraus durchzuführen. Aus diesem Grund kann in der API die Benachrichtigung an Absender und Empfänger deaktiviert werden.
Absender-Benachrichtigung für einen Transfer deaktivieren Transfer transfer = new Transfer(); transfer.setNotifySender(false); Empfänger-Benachrichtigung für einen Transfer deaktivieren Transfer transfer = new Transfer(); transfer.setNotifyRecipients(false);
Entwickler einer Cryptshare Client-Anwendung möchten die Transferbenachrichtigungen möglicherweise selber verwalten, beispielsweise für eine Client-Anwendung wie Cryptshare for Outlook. Um dennoch dasselbe Layout und insbesondere die spezifischen Informationen pro Empfänger zu erhalten, gibt es in der API die Möglichkeit, den HTML-Code für die E-Mail-Benachrichtigung vom Server zu erhalten.
client.requestEmailTemplate("<template-name>", <replacements>, <language>, <mailFormat>);
> <template-name> : Der Name des gewünschten Templates > <replacements> : Mapping der Platzhalter im Template > <language> : Die Sprache des Templates > <mailFormat> : Das E-Mail-Format welches verwendet werden soll. Entweder 'EmailFormat.HTML' oder 'EmailFormat.PLAIN'.
E-Mail-Platzhalter
E-Mail-Platzhalter werden verwendet, um individuelle Informationen in Templates auszufüllen. Dadurch kann jeder E-Mail-Empfänger eine E-Mail mit spezifischem Inhalt, wie beispielsweise einem persönlichen Downloadlink, Name oder E-Mail-Adresse, erhalten.
Template-Schnipsel mit Platzhaltern für Name und E-Mail-Adresse [...]
Dear Sir or Madam,
Confidential data has been sent to you by <a href="mailto:$email">$name</a>. [...]
Mögliche Platzhalter in E-Mail-Benachrichtigungen
Die folgende Tabelle zeigt mögliche Platzhalter in E-Mail-Benachrichtigungen. Platzhalter, die mit ABSENDER markiert sind, werden für das Absender-Template benötigt. Platzhalter, die mit EMPFÄNGER markiert sind, werden für das Empfänger-Template benötigt.
Tag | Platzhalter | Beschreibung | Anmerkungen |
---|---|---|---|
ABSENDEREMPFÄNGER |
"baseurl" |
Die Cryptshare Server URL | |
EMPFÄNGER |
"subject" |
Der Betreff der Nachricht | |
EMPFÄNGER |
"message" |
Der Nachrichtentext | |
ABSENDEREMPFÄNGER |
"date_1" |
Das Ablaufdatum des Transfers | |
ABSENDEREMPFÄNGER |
"list_3" |
Die Liste der Dateien in dem Transfer | |
EMPFÄNGER |
"linkref" |
Der Downloadlink für den Transfer | |
ABSENDEREMPFÄNGER |
"passwordmode" |
Das für den Transfer verwendete Passwortverfahren | Mögliche Werte:
|
EMPFÄNGER |
"name" |
Der Name des Absenders | |
EMPFÄNGER |
"phone" |
Die Telefonnummer des Absenders | |
EMPFÄNGER |
"email" |
Die E-Mail-Adresse des Absenders | |
ABSENDEREMPFÄNGER |
"list_1" |
Liste der Empfänger, die unter 'An' aufgeführt sind | |
ABSENDEREMPFÄNGER |
"list_2" |
Liste der Empfänger, die unter 'Cc' aufgeführt sind |
Wie E-Mail-Platzhalter verwendet werden können
#client.requestMailTemplate() verlangt ein sehr spezifisches Mapping, damit man das gewünschte Resultat erhält. Der Parameter ist ein Set, welches Instanzen des Typs TemplateReplacement hält. Ein TemplateReplacement-Objekt ist im Wesentlichen ein Key-Value Wrapper, bei dem der Schlüssel ein spezifischer Platzhalter ist und der Wert entweder eine Liste oder ein einzelner Wert ist. Auf diese Art können angepasste E-Mail-Templates pro Empfänger mit einem einzigen Request angefordert werden.
Platzhalter verwenden // <replacements> Map<Set<String>, Set<TemplateReplacement>> replacements = new HashMap<>(); // <replacementSet> Set<TemplateReplacement> replacementSet = new HashSet<TemplateReplacement>(); replacementSet.add(new TemplateReplacement("name", "John Adams")); replacementSet.add(new TemplateReplacement("email", "john.adams@server.com")); List<String> fileList = new ArrayList<String>(); fileList.add("file_01.txt"); fileList.add("file_02.docx"); replacementSet.add(new TemplateReplacement("list_3", fileList)); List<String> recipientList = new ArrayList<String>(); recipientList.add("recipient1@otherdomain.org"); recipientList.add("recipienr2@otherdomain.com"); replacementSet.add(new TemplateReplacement("list_1", recipientList)); // <identifiers> Set<String> identifiers = new HashSet<>(); identifiers.addAll(recipientList); replacements.put(identifiers, replacementSet); Map<List<String>, String> mailTemplates = client.requestEmailTemplate("recipient", replacements, new Locale("ja"), EmailFormat.HTML);
Das Ergebnisobjekt eines E-Mail-Template-Requests
Wird ein E-Mail-Template mittels client.requestMailTemplate() angefordert, enthält das zurückgegebene Mapping ein spezifisches Template pro Identifier-Set. Das bedeutet, dass ein ausgefülltes Template mit einem einzigen Request für mehrere Empfänger, einzelne Empfänger oder einer Kombination von beidem abgerufen werden kann.
Beispiel: Mehrere Kombinationen von <identifier> und <replacementSet> // identifiers1: One single recipient, replacementSet1: Set of replacements replacements.put(identifiers1, replacementSet1); // identifiers2: Two recipients, replacementSet2: Set of replacements replacements.put(identifiers2, replacementSet2); Map<List<String>, String> mailTemplates = client.requestEmailTemplate("recipient", replacements, new Locale("ja"), EmailFormat.HTML);
Der obenstehende Request würde zwei Templates zurückgeben, eines pro Identifier-Set, das dem replacement-Parameter übergeben wurde. Beide Templates haben einen anderen Inhalt, der mittels replacementSet1, bzw. replacementSet2 ausgefüllt wurde.
> <templateName> : Der Name des gewünschten Templates > <replacements> : Mapping zwischen <identifiers> und <replacementSet> > <identifiers> : Set aus E-Mail-Adressen, die ein spezifisches <replacementSet> haben > <replacementSet> : Ein Set von Platzhaltern, welche <identifiers> zugeordnet sind