CSDNCurrent 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.notifySender = false; Empfänger-Benachrichtigung für einen Transfer deaktivieren Transfer transfer = new Transfer(); transfer.notifyRecipients = 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.RequestMailTemplate("<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 'html' oder 'plain'.
E-Mail Platzhalter
E-Mail Platzhalter werden benutzt 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 | Placeholder Key | Description | Additional Notes |
---|---|---|---|
ABSENDEREMPFÄNGER |
TemplatePlaceholder.BASEURL |
Die Cryptshare Server URL | |
EMPFÄNGER |
TemplatePlaceholder.SUBJECT |
Der Betreff der Nachricht | |
EMPFÄNGER |
TemplatePlaceholder.MESSAGE |
Der Nachrichtentext | |
ABSENDEREMPFÄNGER |
TemplatePlaceholder.DATE_1 |
Das Ablaufdatum des Transfers | |
ABSENDEREMPFÄNGER |
TemplatePlaceholder.LIST_3 |
Die Liste der Dateien in dem Transfer | |
EMPFÄNGER |
TemplatePlaceholder.LINKREF |
Der Downloadlink für den Transfer | |
ABSENDEREMPFÄNGER |
TemplatePlaceholder.PASSWORDMODE |
Das für den Transfer verwendete Passwortverfahren | Mögliche Werte:
|
EMPFÄNGER |
TemplatePlaceholder.NAME |
Der Name des Absenders | |
EMPFÄNGER |
TemplatePlaceholder.PHONE |
Die Telefonnummer des Absenders | |
EMPFÄNGER |
TemplatePlaceholder.EMAIL |
Die E-Mail Adresse des Absenders | |
ABSENDEREMPFÄNGER |
TemplatePlaceholder.LIST_1 |
Liste der Empfänger die unter 'An' aufgeführt sind | |
ABSENDEREMPFÄNGER |
TemplatePlaceholder.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 spezifische Enum-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> Dictionary<ISet<string>, ISet<TemplateReplacement>> replacements = new Dictionary<ISet<string>, ISet<TemplateReplacement>>(); // <replacementSet> ISet<TemplateReplacement> replacementSet = new HashSet<TemplateReplacement>(); replacementSet.Add(new TemplateReplacement(TemplatePlaceholder.NAME, "John Adams")); replacementSet.Add(new TemplateReplacement(TemplatePlaceholder.EMAIL, "john.adams@server.com")); List<string> fileList = new List<string>(); fileList.Add("file_01.txt"); fileList.Add("file_02.docx"); replacementSet.Add(new TemplateReplacement(TemplatePlaceholder.LIST_3, fileList)); List<string> recipientList = new List<string>(); recipientList.Add("recipient1@otherdomain.org"); recipientList.Add("recipient2@otherdomain.com"); replacementSet.Add(new TemplateReplacement(TemplatePlaceholder.LIST_1, recipientList)); // <identifiers> ISet<string> identifiers = new HashSet<string>(); identifiers.UnionWith(recipientList); replacements[identifiers] = replacementSet; MailTemplateResult mailTemplates = client.RequestMailTemplate("recipient", replacements, System.Globalization.CultureInfo.CreateSpecificCulture("ja"), "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[identifiers1] = replacementSet1; // identifiers2: Two recipients, replacementSet2: Set of replacements replacements[identifiers2] = replacementSet2; MailTemplateResult mailTemplates = client.RequestMailTemplate("recipient", replacements, System.Globalization.CultureInfo.CreateSpecificCulture("ja"), "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 spzifisches <replacementSet> haben > <replacementSet> : Ein Set von Platzhaltern Welche <identifiers> zugeordnet sind