diff --git a/entity/BulkMail_entity/BulkMail_entity.aod b/entity/BulkMail_entity/BulkMail_entity.aod
index eed32e047eeee11830af5758f92e36931aa249c1..650f4c8e4d069bb6dacebfa14a434e26254513e4 100644
--- a/entity/BulkMail_entity/BulkMail_entity.aod
+++ b/entity/BulkMail_entity/BulkMail_entity.aod
@@ -1,222 +1,216 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.10" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.10">
-  <name>BulkMail_entity</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <icon>VAADIN:AT</icon>
-  <title>Bulk mail</title>
-  <contentTitleProcess>%aditoprj%/entity/BulkMail_entity/contentTitleProcess.js</contentTitleProcess>
-  <titlePlural>Bulk mails</titlePlural>
-  <recordContainer>db</recordContainer>
-  <entityFields>
-    <entityProvider>
-      <name>#PROVIDER</name>
-      <dependencies>
-        <entityDependency>
-          <name>88f8ded7-fe8f-41ef-8e01-030bae0867ee</name>
-          <entityName>BulkMailAddRecipients_entity</entityName>
-          <fieldName>BulkMails</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-    </entityProvider>
-    <entityField>
-      <name>BULKMAILID</name>
-    </entityField>
-    <entityField>
-      <name>NAME</name>
-      <title>Name</title>
-      <mandatory v="true" />
-    </entityField>
-    <entityField>
-      <name>SUBJECT</name>
-      <title>Subject</title>
-    </entityField>
-    <entityField>
-      <name>DESCRIPTION</name>
-      <title>Description</title>
-    </entityField>
-    <entityField>
-      <name>DOCUMENTTEMPLATE_ID</name>
-      <title>Document Template</title>
-      <consumer>Templates</consumer>
-      <mandatory v="false" />
-      <onValueChange>%aditoprj%/entity/BulkMail_entity/entityfields/documenttemplate_id/onValueChange.js</onValueChange>
-    </entityField>
-    <entityConsumer>
-      <name>Recipients</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>BulkMailRecipient_entity</entityName>
-        <fieldName>BulkMailRecipients</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>BulkMailId_param</name>
-          <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/recipients/children/bulkmailid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Templates</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>DocumentTemplate_entity</entityName>
-        <fieldName>DocumentTemplateProvider</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>DocumentTemplateType_param</name>
-          <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/templates/children/documenttemplatetype_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>DocumentTemplateTypeClassification_param</name>
-          <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/templates/children/documenttemplatetypeclassification_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityField>
-      <name>STATUS</name>
-      <title>Status</title>
-      <consumer>StatusKeyword</consumer>
-      <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/status/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/status/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>SENDER</name>
-      <title>Sender address</title>
-      <mandatory v="true" />
-      <onValidation>%aditoprj%/entity/BulkMail_entity/entityfields/sender/onValidation.js</onValidation>
-    </entityField>
-    <entityActionField>
-      <name>sendMail</name>
-      <title>Send</title>
-      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:PAPERPLANE</iconId>
-      <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/stateProcess.js</stateProcess>
-    </entityActionField>
-    <entityField>
-      <name>ICON</name>
-      <contentType>IMAGE</contentType>
-      <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/icon/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>preview</name>
-      <contentType>HTML</contentType>
-      <displayValueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/preview/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityConsumer>
-      <name>StatusKeyword</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/statuskeyword/children/containername_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityField>
-      <name>BINDATA</name>
-      <contentType>FILE</contentType>
-      <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/bindata/stateProcess.js</stateProcess>
-    </entityField>
-    <entityFieldGroup>
-      <name>subjectPreview</name>
-      <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/subjectpreview/valueProcess.js</valueProcess>
-      <fields>
-        <element>SUBJECT</element>
-      </fields>
-    </entityFieldGroup>
-    <entityActionField>
-      <name>openAdminView</name>
-      <title>Open admin view</title>
-      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CURLY_BRACKETS</iconId>
-      <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/openadminview/stateProcess.js</stateProcess>
-    </entityActionField>
-    <entityParameter>
-      <name>PresetRecipients_param</name>
-      <expose v="true" />
-    </entityParameter>
-    <entityField>
-      <name>content</name>
-      <title>Content</title>
-      <contentType>HTML</contentType>
-      <contentTypeProcess>%aditoprj%/entity/BulkMail_entity/entityfields/content/contentTypeProcess.js</contentTypeProcess>
-      <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/content/stateProcess.js</stateProcess>
-      <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/content/valueProcess.js</valueProcess>
-    </entityField>
-  </entityFields>
-  <recordContainers>
-    <dbRecordContainer>
-      <name>db</name>
-      <alias>Data_alias</alias>
-      <fromClauseProcess>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
-      <onDBInsert>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
-      <onDBUpdate>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
-      <onDBDelete>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>6444866d-42ee-4b7b-8536-6dc8f6437c45</name>
-          <tableName>BULKMAIL</tableName>
-          <primaryKey>BULKMAILID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>914d6373-4409-44e5-882a-3f795b196d7b</name>
-          <tableName>DOCUMENTTEMPLATE</tableName>
-          <primaryKey>DOCUMENTTEMPLATEID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
-      <recordFieldMappings>
-        <dbRecordFieldMapping>
-          <name>BULKMAILID.value</name>
-          <recordfield>BULKMAIL.BULKMAILID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>DESCRIPTION.value</name>
-          <recordfield>BULKMAIL.DESCRIPTION</recordfield>
-          <isFilterable v="true" />
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>DOCUMENTTEMPLATE_ID.value</name>
-          <recordfield>BULKMAIL.DOCUMENTTEMPLATE_ID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>NAME.value</name>
-          <recordfield>BULKMAIL.NAME</recordfield>
-          <isFilterable v="true" />
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>SUBJECT.value</name>
-          <recordfield>BULKMAIL.SUBJECT</recordfield>
-          <isFilterable v="true" />
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>SENDER.value</name>
-          <recordfield>BULKMAIL.SENDER</recordfield>
-          <isFilterable v="true" />
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>DOCUMENTTEMPLATE_ID.displayValue</name>
-          <recordfield>DOCUMENTTEMPLATE.NAME</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>STATUS.value</name>
-          <recordfield>BULKMAIL.STATUS</recordfield>
-          <isFilterable v="true" />
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>STATUS.displayValue</name>
-          <expression>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
-      </recordFieldMappings>
-    </dbRecordContainer>
-  </recordContainers>
-</entity>
+<?xml version="1.0" encoding="UTF-8"?>
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.10" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.10">
+  <name>BulkMail_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>VAADIN:AT</icon>
+  <title>Bulk mail</title>
+  <contentTitleProcess>%aditoprj%/entity/BulkMail_entity/contentTitleProcess.js</contentTitleProcess>
+  <titlePlural>Bulk mails</titlePlural>
+  <recordContainer>db</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+      <dependencies>
+        <entityDependency>
+          <name>88f8ded7-fe8f-41ef-8e01-030bae0867ee</name>
+          <entityName>BulkMailAddRecipients_entity</entityName>
+          <fieldName>BulkMails</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+    <entityField>
+      <name>BULKMAILID</name>
+    </entityField>
+    <entityField>
+      <name>NAME</name>
+      <title>Name</title>
+      <mandatory v="true" />
+    </entityField>
+    <entityField>
+      <name>SUBJECT</name>
+      <title>Subject</title>
+    </entityField>
+    <entityField>
+      <name>DESCRIPTION</name>
+      <title>Description</title>
+    </entityField>
+    <entityField>
+      <name>DOCUMENTTEMPLATE_ID</name>
+      <title>Document Template</title>
+      <consumer>Templates</consumer>
+      <mandatory v="false" />
+      <onValueChange>%aditoprj%/entity/BulkMail_entity/entityfields/documenttemplate_id/onValueChange.js</onValueChange>
+    </entityField>
+    <entityConsumer>
+      <name>Recipients</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>BulkMailRecipient_entity</entityName>
+        <fieldName>BulkMailRecipients</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>BulkMailId_param</name>
+          <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/recipients/children/bulkmailid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Templates</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>DocumentTemplate_entity</entityName>
+        <fieldName>DocumentTemplateProvider</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>DocumentTemplateType_param</name>
+          <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/templates/children/documenttemplatetype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>DocumentTemplateTypeClassification_param</name>
+          <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/templates/children/documenttemplatetypeclassification_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>STATUS</name>
+      <title>Status</title>
+      <consumer>StatusKeyword</consumer>
+      <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/status/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/status/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>SENDER</name>
+      <title>Sender address</title>
+      <mandatory v="true" />
+      <onValidation>%aditoprj%/entity/BulkMail_entity/entityfields/sender/onValidation.js</onValidation>
+    </entityField>
+    <entityActionField>
+      <name>sendMail</name>
+      <title>Send</title>
+      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:PAPERPLANE</iconId>
+      <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityField>
+      <name>ICON</name>
+      <contentType>IMAGE</contentType>
+      <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/icon/valueProcess.js</valueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>StatusKeyword</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/statuskeyword/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>BINDATA</name>
+      <contentType>FILE</contentType>
+      <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/bindata/stateProcess.js</stateProcess>
+    </entityField>
+    <entityFieldGroup>
+      <name>subjectPreview</name>
+      <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/subjectpreview/valueProcess.js</valueProcess>
+      <fields>
+        <element>SUBJECT</element>
+      </fields>
+    </entityFieldGroup>
+    <entityActionField>
+      <name>openAdminView</name>
+      <title>Open admin view</title>
+      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CURLY_BRACKETS</iconId>
+      <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/openadminview/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityParameter>
+      <name>PresetRecipients_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityField>
+      <name>content</name>
+      <title>Content</title>
+      <contentTypeProcess>%aditoprj%/entity/BulkMail_entity/entityfields/content/contentTypeProcess.js</contentTypeProcess>
+      <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/content/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/content/displayValueProcess.js</displayValueProcess>
+    </entityField>
+  </entityFields>
+  <recordContainers>
+    <dbRecordContainer>
+      <name>db</name>
+      <alias>Data_alias</alias>
+      <fromClauseProcess>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
+      <onDBInsert>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
+      <onDBUpdate>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
+      <onDBDelete>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
+      <linkInformation>
+        <linkInformation>
+          <name>6444866d-42ee-4b7b-8536-6dc8f6437c45</name>
+          <tableName>BULKMAIL</tableName>
+          <primaryKey>BULKMAILID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>914d6373-4409-44e5-882a-3f795b196d7b</name>
+          <tableName>DOCUMENTTEMPLATE</tableName>
+          <primaryKey>DOCUMENTTEMPLATEID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
+      <recordFieldMappings>
+        <dbRecordFieldMapping>
+          <name>BULKMAILID.value</name>
+          <recordfield>BULKMAIL.BULKMAILID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DESCRIPTION.value</name>
+          <recordfield>BULKMAIL.DESCRIPTION</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DOCUMENTTEMPLATE_ID.value</name>
+          <recordfield>BULKMAIL.DOCUMENTTEMPLATE_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>NAME.value</name>
+          <recordfield>BULKMAIL.NAME</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>SUBJECT.value</name>
+          <recordfield>BULKMAIL.SUBJECT</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>SENDER.value</name>
+          <recordfield>BULKMAIL.SENDER</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DOCUMENTTEMPLATE_ID.displayValue</name>
+          <recordfield>DOCUMENTTEMPLATE.NAME</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STATUS.value</name>
+          <recordfield>BULKMAIL.STATUS</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STATUS.displayValue</name>
+          <expression>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+      </recordFieldMappings>
+    </dbRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/BulkMail_entity/entityfields/content/contentTypeProcess.js b/entity/BulkMail_entity/entityfields/content/contentTypeProcess.js
index e7996a89667933fc400f3fe807ef1a03e8b71f57..af9657e3dd0e8e678b257e83dd8f9c5955e21e3f 100644
--- a/entity/BulkMail_entity/entityfields/content/contentTypeProcess.js
+++ b/entity/BulkMail_entity/entityfields/content/contentTypeProcess.js
@@ -1,15 +1,28 @@
+import("Bulkmail_lib");
 import("system.result");
 import("Document_lib");
 import("system.vars");
+import("DocumentTemplate_lib");
 
 var upload = vars.get("$field.BINDATA");
-var filename = DocumentUtil.getFilenameFromUpload(upload);
-var type = DocumentUtil.getFileExtensionFromUpload(filename);
-result.string(
-    ({
+var contentType, type, filename, template;
+if (upload)
+{
+    filename = DocumentUtil.getFilenameFromUpload(upload);
+    type = DocumentUtil.getFileExtensionFromUpload(filename);
+    contentType = ({
         "txt" : "LONG_TEXT",
         "html" : "HTML",
         "htm" : "HTML",
         "eml" : "HTML"
-    })[type] || "LONG_TEXT"
-);
\ No newline at end of file
+    })[type] || "LONG_TEXT";
+}
+else
+{
+    template = BulkMailUtils.getBulkMailTemplate(vars.get("$field.BULKMAILID"), vars.get("$field.DOCUMENTTEMPLATE_ID"));
+    type = template.type;
+    contentType = type == DocumentTemplate.types.HTML || type == DocumentTemplate.types.EML
+        ? "HTML" 
+        : "LONG_TEXT";
+}
+result.string(contentType);
\ No newline at end of file
diff --git a/entity/BulkMail_entity/entityfields/preview/displayValueProcess.js b/entity/BulkMail_entity/entityfields/content/displayValueProcess.js
similarity index 97%
rename from entity/BulkMail_entity/entityfields/preview/displayValueProcess.js
rename to entity/BulkMail_entity/entityfields/content/displayValueProcess.js
index 2befdfd6ae93c13f5766876054b51e28c7c606c6..d676eae7a0822b5beea69cae722adc4b4cd7c67e 100644
--- a/entity/BulkMail_entity/entityfields/preview/displayValueProcess.js
+++ b/entity/BulkMail_entity/entityfields/content/displayValueProcess.js
@@ -1,19 +1,19 @@
-import("Bulkmail_lib");
-import("system.text");
-import("Employee_lib");
-import("system.vars");
-import("system.result");
-import("system.neon");
-import("DocumentTemplate_lib");
-
-//if this was done for every row, like in a lookup, the performance would be very bad
-if (vars.get("$sys.viewmode") == neon.FRAME_VIEWMODE_MASK) 
-{
-    var template = BulkMailUtils.getBulkMailTemplate(vars.get("$field.BULKMAILID"), vars.get("$field.DOCUMENTTEMPLATE_ID"));
-    
-    var contactId = EmployeeUtils.getCurrentContactId();
-    var preview = template.getReplacedEmailsByContactIds([contactId]);
-
-    result.string(preview[contactId].body);
-}
-
+import("Bulkmail_lib");
+import("system.text");
+import("Employee_lib");
+import("system.vars");
+import("system.result");
+import("system.neon");
+import("DocumentTemplate_lib");
+
+//if this was done for every row, like in a lookup, the performance would be very bad
+if (vars.get("$sys.viewmode") == neon.FRAME_VIEWMODE_MASK) 
+{
+    var template = BulkMailUtils.getBulkMailTemplate(vars.get("$field.BULKMAILID"), vars.get("$field.DOCUMENTTEMPLATE_ID"));
+    
+    var contactId = EmployeeUtils.getCurrentContactId();
+    var preview = template.getReplacedEmailsByContactIds([contactId]);
+
+    result.string(preview[contactId].body);
+}
+
diff --git a/entity/BulkMail_entity/entityfields/content/stateProcess.js b/entity/BulkMail_entity/entityfields/content/stateProcess.js
deleted file mode 100644
index 3556de9c2f8a50d3a7d0eaee2900e769c1eb2a9c..0000000000000000000000000000000000000000
--- a/entity/BulkMail_entity/entityfields/content/stateProcess.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import("system.result");
-import("system.neon");
-import("system.vars");
-
-if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    result.string(neon.COMPONENTSTATE_EDITABLE);
-else
-    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/BulkMail_entity/entityfields/content/valueProcess.js b/entity/BulkMail_entity/entityfields/content/valueProcess.js
index 7b157c6cc8c6ee66d4083c68bee963b411b2748e..cdd38f9be7f91cf29e2a8b9b6600a4a24e67de84 100644
--- a/entity/BulkMail_entity/entityfields/content/valueProcess.js
+++ b/entity/BulkMail_entity/entityfields/content/valueProcess.js
@@ -8,16 +8,25 @@ import("DocumentTemplate_lib");
 if (vars.get("$this.value") == null)
 {
     var upload = vars.get("$field.BINDATA");
-    var binData = DocumentUtil.getBindataFromUpload(upload);
-    var filename = DocumentUtil.getFilenameFromUpload(upload);
-    var type = DocumentUtil.getFileExtensionFromUpload(filename);
-    type = ({
-        "txt" : DocumentTemplate.types.TXT,
-        "html" : DocumentTemplate.types.HTML,
-        "htm" : DocumentTemplate.types.HTML,
-        "eml" : DocumentTemplate.types.EML
-    })[type];
-    var template = new DocumentTemplate(binData, type);
+    var template;
+    if (upload)
+    {
+        var binData = DocumentUtil.getBindataFromUpload(upload);
+        var filename = DocumentUtil.getFilenameFromUpload(upload);
+        var type = DocumentUtil.getFileExtensionFromUpload(filename);
+        type = ({
+            "txt" : DocumentTemplate.types.TXT,
+            "html" : DocumentTemplate.types.HTML,
+            "htm" : DocumentTemplate.types.HTML,
+            "eml" : DocumentTemplate.types.EML
+        })[type];
+        template = new DocumentTemplate(binData, type);
+        
+    }
+    else
+    {
+        template = DocumentTemplate.loadTemplate(vars.get("$field.DOCUMENTTEMPLATE_ID"));
+    }
     var content = template.getReplacedContent({}, true);
 
     result.string(content);
diff --git a/entity/BulkMail_entity/recordcontainers/db/onDBInsert.js b/entity/BulkMail_entity/recordcontainers/db/onDBInsert.js
index 1a0d7b3b5e8ed56dc8088006903a9851f1bbef62..dd2d0ecc46f46ab5786a9679f05a1c8d9ef54fa8 100644
--- a/entity/BulkMail_entity/recordcontainers/db/onDBInsert.js
+++ b/entity/BulkMail_entity/recordcontainers/db/onDBInsert.js
@@ -1,3 +1,4 @@
+import("DocumentTemplate_lib");
 import("system.result");
 import("system.vars");
 import("system.db");
@@ -9,13 +10,26 @@ import("Bulkmail_lib");
 
 var content = vars.get("$field.content");
 var originalBinData = vars.get("$field.BINDATA");
-var filename;
+var filename, type, template;
 
 if(vars.get("$field.BINDATA"))
+{
     filename = DocumentUtil.getFilenameFromUpload(vars.get("$field.BINDATA"));
+    type = DocumentUtil.getFileExtensionFromUpload(filename);
+    type = ({
+            "txt" : DocumentTemplate.types.TXT,
+            "html" : DocumentTemplate.types.HTML,
+            "htm" : DocumentTemplate.types.HTML,
+            "eml" : DocumentTemplate.types.EML
+        })[type];
+}
+else
+{
+    template = DocumentTemplate.loadTemplate(vars.get("$field.DOCUMENTTEMPLATE_ID"));
+    type = template.type;
+}
 
-var type = DocumentUtil.getFileExtensionFromUpload(filename);
-if (type == "html" || type == "eml")
+if (type == DocumentTemplate.types.EML || type == DocumentTemplate.types.HTML)
     content = "<html>" + content + "</html>";
 
 var bindata = util.encodeBase64String(content);
diff --git a/neonView/BulkMailTest_view/BulkMailTest_view.aod b/neonView/BulkMailTest_view/BulkMailTest_view.aod
index c6442e56b066bfb47f58b9154ef3e9fa9d2a2fcb..0192108f415f42bf1caa993021dd5e997e7dc130 100644
--- a/neonView/BulkMailTest_view/BulkMailTest_view.aod
+++ b/neonView/BulkMailTest_view/BulkMailTest_view.aod
@@ -1,41 +1,41 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
-  <name>BulkMailTest_view</name>
-  <title>Preview</title>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <layout>
-    <noneLayout>
-      <name>layout</name>
-    </noneLayout>
-  </layout>
-  <children>
-    <genericViewTemplate>
-      <name>Subject</name>
-      <showDrawer v="true" />
-      <drawerCaption>Subject</drawerCaption>
-      <fixedDrawer v="true" />
-      <hideLabels v="true" />
-      <entityField>#ENTITY</entityField>
-      <fields>
-        <entityFieldLink>
-          <name>d85c2b49-3a32-4261-95aa-6e13d9debe46</name>
-          <entityField>subjectPreview</entityField>
-        </entityFieldLink>
-      </fields>
-    </genericViewTemplate>
-    <genericViewTemplate>
-      <name>Body</name>
-      <showDrawer v="true" />
-      <drawerCaption>Content</drawerCaption>
-      <fixedDrawer v="true" />
-      <hideLabels v="true" />
-      <entityField>#ENTITY</entityField>
-      <fields>
-        <entityFieldLink>
-          <name>13d21d66-6f52-4535-9cb9-3b26db11dfbf</name>
-          <entityField>preview</entityField>
-        </entityFieldLink>
-      </fields>
-    </genericViewTemplate>
-  </children>
-</neonView>
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>BulkMailTest_view</name>
+  <title>Preview</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>Subject</name>
+      <showDrawer v="true" />
+      <drawerCaption>Subject</drawerCaption>
+      <fixedDrawer v="true" />
+      <hideLabels v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>d85c2b49-3a32-4261-95aa-6e13d9debe46</name>
+          <entityField>subjectPreview</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+    <genericViewTemplate>
+      <name>Body</name>
+      <showDrawer v="true" />
+      <drawerCaption>Content</drawerCaption>
+      <fixedDrawer v="true" />
+      <hideLabels v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>af0d45a2-a96f-4031-a93d-62ac177efb43</name>
+          <entityField>content</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>