TFbmVariableItemList.NameValueText

Diese Variable ist vom Typ string und eine Eigenschaft der Klasse TFbmVariableItemList, welche in der Unit Item definiert wurde. Auf die Variable kann sowohl lesend als auch schreibend zugegriffen werden.
Mit dieser Eigenschaft können einem Element auf sehr einfachem Weg Variablen zur Verfügung gestellt werden. Es kann eine Zeichenkette mit jeweils einem "Name/Value"-Paar pro Zeile übergeben werden. Die einzelnen Zeilen sind dabei durch \r\n getrennt.
Beispiel für die Datenübergabe:
1
2
3
Item.Variables.NameValueText :=
  'Vorname=Max' + #13#10 +
  'Nachname=Mustermann';
Nach der Übergabe kann via Item.Variables.Values['Vorname'] auf den Namen zugegriffen werden. Außerdem stehen die Variablen im Text der Nachricht zur Verfügung und können z.B. über [$Vorname] im Text verwendet werden.
Ein etwas komplexeres Beispiel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
var
  AutoReplyItem: TFbmItem;
  DraftItem: TFbmItem;

begin
  DraftItem := TFbmItem.Create(ikEmail, 0);

  try
    DraftItem.DbQuery := DbQuery;
    DraftItem.LoadAttachmentsContent;
    DraftItem.Load(92);

    if Item.Kind = DraftItem.Kind then
    begin
      AutoReplyItem := TFbmItem.Create(DraftItem.Kind, 0);

      try
        AutoReplyItem.Assign(DraftItem, [iaoAttachments, iaoProperties, iaoUserFields, iaoNowAsCreated], iasNew);
        AutoReplyItem.State := isAnswer;
        AutoReplyItem.TaskNumber.Assign(Item.TaskNumber);
        AutoReplyItem.Classified.Assign(Item.Classified);

        if Assigned(AutoReplyItem.Recipients) then
        begin
          if (Item.Kind = ikEmail) and (Item.Properties is TFbmItemEMailProperties) and (TFbmItemEMailProperties(Item.Properties).ReplyTo.Count > 0) then
            AutoReplyItem.Recipients.Text := TFbmItemEMailProperties(Item.Properties).ReplyTo.Text
          else if Assigned(Item.From) then
            AutoReplyItem.Recipients.Text := Item.From.Text;
        end;

        // In dieser Zeile werden die eingehenden Daten als Variablen in der automatischen Antwort zur Verfügung gestellt.
        AutoReplyItem.Variables.NameValueText := Item.TextViewData;
        AutoReplyItem.Save;
        Item.Delete; // Hebt nur die "Antwort" als ausgehendes Element auf.
      finally
        AutoReplyItem.Free;
      end;
    end;
  finally
    DraftItem.Free;
  end;
end.
Das komplexere Beispiel ermöglicht zum Beispiel eine einfache Anbindung eines externen Systems. Dabei werden die E-Mails, welche an den Kunden gesendet werden sollen, von GREYHOUND generiert. Die externe Anwendung sendet nur eine E-Mail an ein von GREYHOUND überwachtes POP3-Postfach. Der Absender der E-Mail ist dabei der tatsächliche Empfänger (also zum Beispiel der Kunde). Die E-Mail selbst enthält nur Daten in der oben beschriebenen Form ("Name/Value"-Paare getrennt durch ein Gleichheitszeichen). Über ein entsprechendes Entwurfselement wird nun eine neue E-Mail generiert, mit den Variablen angereichert und an den Kunden versendet.