![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| valent_N |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 9.8.2003 Где: Рига, Латвия Репутация: нет Всего: 1 |
Здравствуйте!
Мне нужно обеспечить моей C++-программе (MFC), разрабатываемой под MS Windows XP Home в среде MS Visual Studio 2005 Team Suite, некоторые из почтовых возможностей. Я выбрал для этого CMC (Common Messaging Calls) - программный интерфейс, базирующийся на MAPI-интерфейсе. В соответствии с документацией MSDN Library 2005 и представленными в ней образцами кодов я делаю следующую инициализацию CMC-интерфейса: 1) загрузка DLL (функция LoadLibrary); 2) выборка из DLL указателей на CMC-функции (метод GetCmcFunctionPtrs). А затем вызываю эти функции. Привожу соответствующий код из моей пробной программы (при создании проекта AppWizard'ом был помечен флажок, указывающий на использование MAPI):
Однако обе вызываемые функции (g_cmc_query_configuration_FuncPtr и g_cmc_logon_FuncPtr) не срабатывают и возвращают значение CMC_E_FAILURE. В связи с вышеизложенным, имею вопросы к тем, кто имел успешный опыт работы с CMC или MAPI: 1. Нужны ли какие-либо предварительные меры по инсталляции MAPI? (В документации об этом ничего не говорится и можно понять, что ничего делать не нужно. Как я понимаю - лишь бы были провайдеры почтовых услуг, а Mapi32.dll является обязательной компонентой ОС Windows). 2. Достаточно ли для использования CMC только загрузить Mapi32.dll и получить из нее указатели на нужные функции? 3. Что в вышеприведенном коде делается неправильно? Спасибо! |
|||
|
||||
| Dragon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 10.8.2006 Где: Киев Репутация: нет Всего: нет |
Сколько себя помню, MAPI всегда работало отвратительно. Ее реализация зависит от правильной установки/конфигурации Outlook Express или Microsoft Outlook (если установлено). Насколько расширенные возможности почты нужны?
Вообще-то, реализация минимального SNMP с помощью сокетов занимает не более 100 строк кода. Причем кроссплатформенного кода, не зависящего от настроек среды. В некоторых случаях (в основном технических) даже не нужно получать MX записи на DNS сервере. Пример кода могу перекинуть завтра, если будет нужен. Это сообщение отредактировал(а) Dragon - 8.10.2006, 12:54 |
|||
|
||||
| valent_N |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 9.8.2003 Где: Рига, Латвия Репутация: нет Всего: 1 |
Большое Спасибо за внимание к моему вопросу. Буду благодарен за присылку Вашего примера. Я не силен в сетевых протоколах, но мне казалось, что SNMP не подходит мне для моих целей. Очевидно, я ошибаюсь.
Вообще говоря, моя задача такая: нужно принять почту (Именно почту! А не создать агентов, обменивающихся сообщениями в произвольном формате), посланную с судна программным обеспечением, созданным не мною, а американцами. То есть, я должен принять их правила игры. Почту я должен раздраконить по полной программе (реализовав абсолютно все почтовые протоколы, нужные для приема посланий) - сделать необходимые перекодировки (языковые и прочие), проанализировать по всем заголовкам, вытянуть все аттачменты, а затем проанализировать каждый из них, исходя из их форматов (XML, CSV, ...) и записать извлеченные из аттачментов данные в базу данных. Конечно, я мог бы прием почты и все протоколы реализовать сам своими руками. Когда-то я имел дело с SMTP и всеми другими почтовыми протоколами (тоже нужны были все они тогда) для реализации отправки почты и помню, насколько для меня это было тогда муторно. Чтобы этого избежать и сэкономить время, я решил сейчас использовать высокоуровневую поддержку почтовых возможностей, предоставляемую Microsoft'ом. Да и нет этого времени у меня сейчас. |
|||
|
||||
| Dragon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 10.8.2006 Где: Киев Репутация: нет Всего: нет |
Понятно, тогда имеющийся пример не подойдет. По какой-то причине я счел что приложение должно отправлять e-mail, а не принимать.
Для приема тебе понадобится поддержка POP3 и IMAP Работа с аттачментами в контектсе e-mail сводится только к их приему Т.е. да, если не использовать внешние библиотеки, тебе нужно чуть ли не mail server писать... В общем, я сталкивался с MAPI около 3 лет назад и был крайне недоволен работой библиотеки. Судя по примеру кода, текущее положение вещей не сильно изменилось. На твоем месте я постарался бы найти альтернативы MAPI. |
|||
|
||||
| valent_N |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 9.8.2003 Где: Рига, Латвия Репутация: нет Всего: 1 |
Спасибо! Буду прорубать и CMC/MAPI. И буду также попутно искать другие возможности.
|
|||
|
||||
| VSergeyV |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 299 Регистрация: 9.5.2006 Где: Новосибирск Репутация: нет Всего: 3 |
||||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |