anchor.diff:      for i := 0 to FRecipients.Count - 1 do
       begin
         s := UTF8Decode(FRecipients.Strings[i]);
  -      MailItem.Recipients.Add(s);
  +      MailRecipient := MailItem.Recipients.Add(s);
  +      MailRecipient.Resolve;
       end;
       tmp := '';
       sep := '';
       for i := 0 to FCCRecipients.Count -  1 do
       begin
         tmp := tmp + sep + FCCRecipients.Strings[i];
  -      sep := '; ';
  +      sep := ';';
       end;
       if tmp <> '' then
       begin
  
positive.code:   olMailItem = $00000000;
  var
    Outlook: OLEVariant;
    MailItem, MailInspector: Variant;
    i : integer;
    s : WideString;
    tmp, sep : String;
  
negative.code: implementation
  
  uses
    StrUtils, SysUtils
  {$ifdef windows}
    ,comobj
  {$endif}
    ;
  
  { TmOutlookMailFactory }
  
  procedure TmOutlookMailFactory.UpdateRecipients(const aValue: String; aRecipients: TStringList);
  var
    tmpList : TStringList;
    i : integer;
  begin
    if ContainsStr(aValue, ';') then
    begin
      tmpList := TStringList.Create;
      try
        tmpList.Delimiter:=';';
        tmpList.DelimitedText:=aValue;
        for i := 0 to tmpList.Count - 1 do
        begin
          if trim(tmpList.Strings[i]) <> '' then
            aRecipients.Add(tmpList.Strings[i]);
        end;
      finally
         tmpList.Free;
      end;
    end
    else
      aRecipients.Add(aValue);
  end;
  
  constructor TmOutlookMailFactory.Create;
  begin
  