Доброго времени суток.
Стала у меня проблема конвертации email из формата x400 в формат smtp в контакте в Outlook, контакт создан локально, email адрес получен из Exchange Server 2007, размещенного в интернете.
В Outlook 2007 проблема решена была через новое свойство:
const
PR_EMS_AB_TARGET_ADDRESS_W = '0x8011001F';
def_schema='http://schemas.microsoft.com/mapi/proptag/';
begin
Outlook := CreateOleObject('Outlook.Application') as _Application;
NameSpace := Outlook.GetNameSpace('MAPI');
recip:=NameSpace.CreateRecipient(email);
try
propname:=def_schema+ PR_EMS_AB_TARGET_ADDRESS_W;
prop:=recip.AddressEntry.PropertyAccessor;
propvalue:= prop.GetProperty(propname);
Вопрос только в том, что в случае с Outlook 2003 такого свойства нету.( Пробовал сделать через CDO 1.2.1
const PR_EMS_AB_PROXY_ADDRESSES = $800F101E;
CdoPR_EMAIL_ADDRESS = $8011001F;
CdoPR_EMAIL = $8011001E;
begin
Session := createOleObject('Mapi.Session') as mapi_tlb._Session;
Session.Logon('Outlook', EmptyParam, false, EmptyParam, EmptyParam,
EmptyParam, EmptyParam);
mess := IDispatch(Session.Outbox.Messages.add('test', 'subj')) as mapi_tlb.Message;
recips:=mess.Recipients;
recip := IDispatch(recips.Add()) as mapi_tlb.Recipient;
recip.Name:=x400email;
recip.type_:=CdoTo;
recip.Resolve(false);
Session.Logoff;
Подскажите что делаю не так? или может как-то можно через Extended Mapi?
Спасибо