E-Mail Adressen in Datentabellen einbinden
E-Mail-Adressen die als Adresse eines Datensatzes dienen (Beispiel: E-Mail-Adresse eines Kontaktes), werden als Teil-Datentabelle vom Typ OrmSubOwnedEmailAddress
angelegt.
OrmSubOwnedEmailAddress
hat die folgende Felder:
EmailAddressType
Dies ist ein Auswahllistenfeld vom TypEmailAddressType
und kann als eindeutiger Schlüssel verwendet werden.EmailAddress
Textfeld mit der E-Mail-Adresse.
E-Mail-Adressen als Felder von zu versendenen Datentabellen (Beispiel: Empfänger der E-Mail), werden als Teil-Datentabelle vom Typ OrmSubLinkedEmailAddress
angelegt.
OrmSubLinkedEmailAddress
hat die folgende Felder:
EmailAddressOwnerId
Guid des Datensatzes, zu der die E-Mail-Adresse zugeordnet ist (generell, ParentGuid vonOrmSubOwnedEmailAddress
). Dieses Feld wird benötigt, um im Nachhinein noch den Empfänger (beispielsweise einen Kontakt) zu identifizieren.EmailAddress
Text mit der E-Mail-Adresse.
Versenden von Datensätzen
Das Versenden von E-Mails ist in BA auf Basis beliebiger Datentabellen möglich. Dies geht konfigurativ über die Ribbon Bar Aktionen und auch programmatisch. Dazu gibt man die entsprechenden Felder des Datensatzes an, den man versenden möchte. In der Klasse MailSend
gibt es eine statische Methode SendOrm
public static void SendOrm(OrmBABase ormSendable, string fieldNameFrom, string fieldNameTo, string fieldNameReplyTo, string fieldNameCC, string fieldNameBCC, string fieldNameSubject, string fieldNameBody, string fieldNamePriority)
Parameter
ormSendable
Der zu versendende DatensatzfieldNameFrom
Der Feldname einer Teil-Datentabelle von TypOrmSubLinkedEmailAddress
. Es darf nur ein Teil-Datensatz vorhanden sein, der als Absender der E-Mail verwendet wird.fieldNameTo
Der Feldname einer Teil-Datentabelle von TypOrmSubLinkedEmailAddress
. Die Empfänger der E-MailfieldNameReplyTo
Der Feldname einer Teil-Datentabelle von TypOrmSubLinkedEmailAddress
. Die “Antworten-An”-Adressen der E-Mail.fieldNameCC
Der Feldname einer Teil-Datentabelle von TypOrmSubLinkedEmailAddress
. Die Kopie-Empfänger der E-MailfieldNameBCC
Der Feldname einer Teil-Datentabelle von TypOrmSubLinkedEmailAddress
. Die Blind-Kopie-Empfänger der E-MailfieldNameSubject
Textfeld mit dem Betreff der E-MailfieldNameBody
Textfeld mit dem Inhalt der E-Mail. Dies kann sowohl reiner Text als auch HTML sein. Der HTML-Inhalt der E-Mail erhält die BA-Schriftart und -größe als Vorgabe.fieldNamePriority
Ein Auswahllistenfeld vom TypEnumPriority
Pre- und Postsend Events
In dem System kann sowohl ein Event vor als auch nach dem Versenden ausgeführt werden. Dazu exitistieren zwei Interfaces IPreSend
und IPostSend
, die man per Dependency Injection definieren kann.
Da es jeweils nur einen Handler geben kann, muss man dabei darauf achten welche Basisklasse man nutzt, ansonsten werden Funktionalitäten abgeschaltet. Mindestens müssen Sie auf den Klassen PreSendBase
und PostSendBase
basieren.
Ist das Modul BA.Activity eingebunden, sollten die Klassen PreSendHandler
und PostSendHandler
aus dem Modul verwendet werden, da sonst das ActivityDate
nicht korrekt gesetzt wird.
Ist das Modul BA.CRM.Activity eingebunden, müssen es die Klassen CRMPreSendHandler
und CRMPostSendHandler
sein, weil sonst die Relation zum ActivityOwner
nicht korrekt gesetzt.
Versenden von E-Mails ohne Verwendung von Datensätzen
Das Versenden von Datensätzen erfolgt asynchron über einen eigenen Hintergrundprozess. Dieser sorgt dafür, dass bei dem Auftreten von Fehlern mehrfach versucht wird, die Mail zu versenden. Möchte man eine E-Mail versenden ohne einen Datensätz zu erzeugen, kann man dies direkt auf dem ISMTPHelper
. In diesem Fall muss das gesamte Handling der Fehler selbst vorgenommen werden.
public virtual BASMTPMail CreateMail(String from, String to, String subject, String body, string cc = null, string bcc = null, string replyTo = null, EnumPriority priority = null, bool checkLimits = true)
Parameter
from
E-Mail Adresse des Absendersto
Komma oder Semikolon separierte Liste mit E-Mail Adressen der Empfängersubject
Der Betreff der E-Mailbody
Unformatierter Text oder HTML. Bilder müssen im HTML eingebettet sein. Der HTML Inhalt der E-Mail erhält die BA-Schriftart und -größe als Vorgabe.cc
Komma oder Semikolon separierte Liste mit E-Mail Adressen der Kopie-Empfängerbcc
Komma oder Semikolon separierte Liste mit E-Mail Adressen der Bliend-Kopie-EmpfängerreplyTo
Komma oder Semikolon separierte Liste mit E-Mail Adressen der Antworten-An-Adressenpriority
Auswahllistenwert von@EnumPriority@checkLimits
Sollen dieGrößen- und die Empfängerlimitationen aus den Anwendungseinstellungen geprüft werden.
SMTPHelperBase smtpHelper = (SMTPHelperBase)Activator.CreateInstance(DIKernelProvider.Kernel.Get(typeof(ISMTPHelper)).GetType());
smtpHelper.CreateMail("user@company.org", "test@test.de", "Testmail", "Mailinhalt");