|
![]() |
#1 |
Участник
|
Привет!
Сам недавно пытался решить такую задачу но из C# для CRM правда мне нехватило сил довести ее до конца... появились другие дела как обычено и пришлось сделать очень некрасиво - через outlook. Если вы разберетесь как помжно прочитать почту напряму через Exchange то Вам 5-ка! Вообще для это можно использовать несколько вариантов сеединений, я начал копать в сторону WebServices это для exchange 2007, для exchange 2003 использовался WebDav, по сути тоже самое. Мне кажется самый правильный способ это реализация библиотеки на C# или С++, а потом ее дергать из Аксапты. Посмотри ссылки http://www.codemeit.com/webservices/...responses.html http://blogs.visoftinc.com/?tag=/c%23 http://www.isrcomputing.com/index.ph...tent&Itemid=86 |
|
|
За это сообщение автора поблагодарили: zZ_TOP_Zz (1). |
![]() |
#2 |
int 20h
|
Всем спасибо огромное за помощь разобралися. Вопрос снимается.
blokva Вы правы. Так мы и поступили Кому интересно как это реализовать вот пример, на вход передаем COM объект message на выходе получаем строку адреса отправителя. Маленько геморно получилось, но работает ![]() Процедуру combyDisp взял тут X++: str SenderEMail(Com _message) { #define.PR_SENDER_EMAIL_ADDRESS(0x0C1F001F) #Define.CdoPR_SENDER_EMAIL_ADDRESS(0x39FE001E) #Define.CdoPR_EMAIL_ADDRESS(0x3003001E) #Define.CdoPR_ADDRTYPE(0x3002001E) COMVariant to; COM recipients; COM fields; COM obj; COM comAddressType; COM field; ComVariant fieldId, fieldName; ComVariant toField; ComVariant addressType; str strAddressType; str s; COM combydisp(COMVariant _var) { ; if (_var.variantType() != COMVariantType::VT_DISPATCH) throw Error(strfmt("bad variant type (%1)",_var.variantType())); if (!_var.iDispatch()) return null; return COM::createFromVariant(_var); } ; recipients = combydisp(_message.Sender()); fields = combydisp(recipients.Fields()); comAddressType = combydisp(fields.Item(#CdoPR_ADDRTYPE)); addressType = comAddressType.Value(); strAddressType = addressType.bStr(); switch(strAddressType) { case "SMTP" : obj = combydisp(fields.Item(#CdoPR_EMAIL_ADDRESS)); toField = obj.Value(); break; default: obj = combydisp(fields.Item(#CdoPR_SENDER_EMAIL_ADDRESS)); toField = obj.Value(); break; } s = toField.bStr(); return s; }
__________________
It's just my Unhopelessnessabilityerism ![]() Trying to debug my mind ![]() |
|
![]() |
#3 |
Участник
|
|
|
Теги |
ax2009, exchange, mail, winapi, почта |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|