Aufbau der Projektdateien

Die SuperMailer-Projektdatei ist eine reine Binärdatei, deren Inhalt nicht von einer eigenen Anwendung geändert werden kann, da sich das Format mit jeder SuperMailer-Version ändern kann. Eine Änderung des zu versendenden Inhalts ist nur über eine Ini-Datei möglich, siehe dazu SuperMailer in eigenen Anwendungen nutzen

Zu jeder SuperMailer-Projektdatei ist eine Empfängerdatenbank zugeordnet, die Zuordnung kann der Nutzer jederzeit über Menü Datei - Empfängerdatenbank wechseln ändern.
Die lokale Empfängerdatenbank liegt im SQLite-Datenbankformat vor. Durch externe Anwendungen können die Daten der SQlite-Datenbank ebenfalls geändert werden. Beim Wechsel auf einen MySQL-Server erstellt SuperMailer automatisch die Tabellen in der MySQL-Datenbank bzw. verwendet die bestehenden Tabellen.

 

Globale Blockliste

Die globale Blockliste wird extern in einer lokalen SQlite-Datenbank gespeichert. Beim Wechsel auf MySQL-Server können mehrere SuperMailer-Instanzen auf die globale Blockliste zugreufen.  Der Aufbau der lokalen und globalen Blockliste ist vollkommen identisch.

 

Aufbau der Empfängerdatenbank

Jede Empfängerdatenbank besteht aus den Standard-Tabellen RecipientsGroups, LocalBlocklist, RecipientsCategories und Rcpts2Cat. Alle anderen Tabellen werden automatisch erzeugt, sobald der Nutzer eine neue Empfängergruppe anlegt.

Aufbau der Tabelle RecipientsGroups

Feldname Typ Beschreibung
ID INT, AUTOINCREMENT Eindeutige ID der Empfängergruppe, beim Einfügen einer neuen Empfängergruppe wird SQLite selbst die entsprechende eindeutige ID vergeben
GroupName STRING, UNIQUE Eindeutiger Name der Empfängergruppe, jeder Empfängergruppenname darf nur einmal vergeben werden.
CreateDate REAL Gibt das Datum/Uhrzeit der Erstellung dieser Empfängergruppe im Delphi TDateTime-Format an
DeleteAble BOOL Ist der Wert TRUE (Standard), dann kann der Nutzer über die Programmoberfläche die Empfängergruppe löschen. Wird der FALSE gesetzt, dann ist die Gruppe nicht löschbar.

Hinweis: Diese Angabe darf für die Empfängergruppe <keine Empfängergruppe> nicht geändert werden, ansonsten funktioniert die Software nicht mehr korrekt.

 

GroupPosition INT Gibt die Positionierung der Gruppe in der Liste mit den Empfängergruppen an.

 

RecipientsSortColumnName String Enthält den Namen der Spalte aus der Tabelle mit den Empfängern, nach welcher sortiert werden soll.

 

RecipientsSortDirection INT Gibt die Richtung der Sortierung der Liste an. Ein Wert 0 bedeutet, keine Sortierung, 1 sortiert aufsteigend, 2 absteigend.

 

RecipientsSortType INT Gibt an, wie die Liste sortiert werden soll. 0 sortiert nach Zeichenketten, 1 numerische Sortierung, 2 Sortierung nach Datum, 3 Sortierung nach Zeit und 4 Sortierung nach Status aktiv/Häkchen gesetzt.

 

ColumnWidths BLOB Die Breite der einzelnen Spalten werden als 4 Byte Integer gespeichert.
LastFailedSendingsDate1 REAL Datum/Uhrzeit im Delphi TDateTime-Format des letzten Versands mit den fehlgeschlagenen Empfänger-IDs in Tabelle FailedSendingsTablename1 wird gespeichert.
LastFailedSendingsDate2 REAL Datum/Uhrzeit im Delphi TDateTime-Format des letzten Versands mit den fehlgeschlagenen Empfänger-IDs in Tabelle FailedSendingsTablename2 wird gespeichert.
RecipientsTablename STRING Name der Tabellen mit den Empfängern dieser Empfängergruppe. Beim Anlegen einer Empfängergruppe muss die Software den eindeutigen Tabellennamen selbst bilden und ebenfalls die Tabelle erstellen.

Hinweis: Erstellen Sie nicht selbst die Tabellennamen, da intern diese durch einen zusätzlichen Trigger mit den Tabellen FailedSendingsTablename1 und FailedSendingsTablename2 verbunden werden.
FailedSendingsTablename1 STRING Name der Tabelle mit den fehlgeschlagenen IDs des letzten oder vorletzten Versands. Beim Anlegen einer Empfängergruppe muss die Software den eindeutigen Tabellennamen selbst bilden und ebenfalls die Tabelle erstellen.

Hinweis: Erstellen Sie nicht selbst die Tabellennamen, da intern diese durch einen zusätzlichen Trigger mit den Tabellen FailedSendingsTablename1 und FailedSendingsTablename2 verbunden werden.
FailedSendingsTablename2 STRING Name der Tabelle mit den fehlgeschlagenen IDs des letzten oder vorletzten Versands. Beim Anlegen einer Empfängergruppe muss die Software den eindeutigen Tabellennamen selbst bilden und ebenfalls die Tabelle erstellen.

Hinweis: Erstellen Sie nicht selbst die Tabellennamen, da intern diese durch einen zusätzlichen Trigger mit den Tabellen FailedSendingsTablename1 und FailedSendingsTablename2 verbunden werden.
InternetHistoryURLs BLOB Enthält die URLs der Webseiten, die zuletzt über die Funktion Text laden - aus Internet verwendet wurden.

 

Aufbau der Tabelle mit den einzelnen Feldern der Empfängerliste

 

Feldname Typ Beschreibung
ID INT, AUTOINCREMENT Eindeutige ID des Empfängers
iCreateDate REAL Enthält das Datum/Uhrzeit des Anlegens des Empfänger im Delphi TDateTime-Format.
iLastEMailSendDateTime REAL Enthält das Datum/Uhrzeit des letzten E-Mail-Versands an diesen Empfänger, dieser Wert wird nur durch BirthdayMailer verwendet.
iLastSMSSendDateTime REAL Enthält das Datum/Uhrzeit des letzten SMS-Versands an diesen Empfänger, dieser Wert wird nur durch BirthdayMailer verwendet.
iActive INT Gibt an, ob der Empfänger aktiv = mit Häkchen versehen ist (1) oder nicht (0).
iHardBounceCount INT Gibt die Anzahl Hardbounces an, Standard 0.
iSoftBounceCount INT Gibt die Anzahl Softbounces an, Standard 0. Dieses Feld wird nicht verwendet.
iLastUpdate DATETIME Timestamp mit der letzten Änderung des Empfängers, in SQlite erfolgt die Aktualisierung des Feldes per Trigger.
iLastNewsletterSendDateTime DATETIME Enthält das Datum/Uhrzeit des letzten Newsletter-/Serienmail-Versands des Empfänger im Delphi TDateTime-Format.
<weitere Felder> STRING Vom Nutzer angelegte Felder, zur Speicherung der Daten.

 

Aufbau der Tabelle mit den fehlgeschlagenen Übermittlungen

Diese Tabelle enthält die IDs der Empfänger aus der Empfängerliste dieser Gruppe. Es dürfen nur IDs eingefügt, die sich in der Empfängerliste befinden, ansonsten werden diese erst wieder nach einem nächsten oder übernächsten Versand gelöscht. Beim Löschen eines Empfängers aus der Empfängerliste wird per internen Trigger die jeweilige ID aus der Tabelle automatisch entfernt.

Feldname Typ Beschreibung
RecipientsTable_ID INT, UNIQUE Gibt die ID des Empfängers an

 

Aufbau der Tabelle für die lokale und globale Blockliste

Die globale Blockliste wird in einer externen SQLite-Datenbank gespeichert. Soll die globale Blockliste auf MySQL-Server gespeichert werden, dann wird immer der Tabellenname BlockList verwendet.

Die Einträge können E-Mail-Adressen, E-Mail-Adressen mit Wildcard-Zeichen (%, _) oder bei SerialLetterAndFax komplette Zeichenketten sein.

 

Feldname Typ Beschreibung
ID INT, AUTOINCREMENT Gibt die ID des Eintrags an.
CreateDate REAL Enthält das Datum/Uhrzeit des Anlegens des Eintrags im Delphi TDateTime-Format.
BlockedEMailAddress STRING Gibt den zu blockenden Eintrag an.
Description BLOB Kann eine Beschreibung enthalten.

 

Aufbau der Tabelle RecipientsCategories

In der Tabelle werden Kategorien für die Empfänger gespeichert.

Feldname Typ Beschreibung
ID INT, AUTOINCREMENT Gibt die ID des Eintrags an.
CategoryName STRING(255) Enthält die Bezeichnung der Kategorie.
CategoryColor INT Die vergebene Farbe der Kategorie wird im Delphi TColor-Format gespeichert.

 

Aufbau der Tabelle Rcpts2Cat

In der Tabelle werden die Zuordnungen Gruppe, Empfänger zu Kategorie gespeichert. Per Trigger werden Einträge gelöscht, sobald Gruppen oder Empfänger gelöscht werden.

Feldname Typ Beschreibung
GroupID INT ID der Empfängergruppe in RecipientsGroups.
RecipientsID INT ID des Empfängers.
RecipientsCategoriesID INT ID der Kategorie in RecipientsCategories.