
Catalyst SoketTools Library
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- Ветеран
- Сообщения: 333
- Зарегистрирован: 21 Сентябрь 2005, 11:05
- Откуда: Нижний Новгород
- Контактная информация:
Вопрос наверное скорее к Игорю Столярову, но выношу на общее обсуждение...
Разбираю пример отправки писем по SMTP, собираю такой же на Кларе. Застопорился на функции:
BOOL MimeExportMessageEx(
HMESSAGE hMessage, // handle to the message
DWORD dwExportMode, // export mode
DWORD dwExportOptions, // export options
LPVOID lpvMessage, // pointer to buffer to contain the message
LPDWORD lpdwMessageSize // pointer to buffer size
);
В клареона описана так:
MimeExportMessageEx(LONG hMessage, LONG dwExportMode, LONG dwExportOptions,*CSTRING lpMessage, *LONG lpdwMessageSize),LONG,PASCAL,RAW,NAME('MimeExportMessageExA')
а точнее на параметре lpvMessage. Я так понимаю в эту переменную и должно заносится собственно письмо, но не заносится...
и соответственно писмо приходит кривое, без темы и содержания.
Игорь, если есть время и возможность, выложи код на кларионе отправки письма, а лучше и получения по POP3 тоже...
Разбираю пример отправки писем по SMTP, собираю такой же на Кларе. Застопорился на функции:
BOOL MimeExportMessageEx(
HMESSAGE hMessage, // handle to the message
DWORD dwExportMode, // export mode
DWORD dwExportOptions, // export options
LPVOID lpvMessage, // pointer to buffer to contain the message
LPDWORD lpdwMessageSize // pointer to buffer size
);
В клареона описана так:
MimeExportMessageEx(LONG hMessage, LONG dwExportMode, LONG dwExportOptions,*CSTRING lpMessage, *LONG lpdwMessageSize),LONG,PASCAL,RAW,NAME('MimeExportMessageExA')
а точнее на параметре lpvMessage. Я так понимаю в эту переменную и должно заносится собственно письмо, но не заносится...

Игорь, если есть время и возможность, выложи код на кларионе отправки письма, а лучше и получения по POP3 тоже...

- Игорь Столяров
- Ветеран движения
- Сообщения: 8032
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
По отправке почты: в архиве ClarionLife есть прекрасный рабочий пример: "Библиотека для отправки сообщений по SMTP с использованием формата MIME (Дмитрий Осипов)". Работает без всяких внешних библиотек - только Clarion и C код. Посмотри.
По приему и разборке почты с помощью Catalyst SoketTools Library - постараюсь выдрать кусок кода и сброшу его тебе на e-mail. Хотя еще раз повторюсь: в описании к библиотеки есть все функции и примеры их использования С - все очень прозрачно и понятно ...
По приему и разборке почты с помощью Catalyst SoketTools Library - постараюсь выдрать кусок кода и сброшу его тебе на e-mail. Хотя еще раз повторюсь: в описании к библиотеки есть все функции и примеры их использования С - все очень прозрачно и понятно ...
-
- Старожил
- Сообщения: 238
- Зарегистрирован: 10 Ноябрь 2005, 23:07
- Откуда: Краснодар
- Благодарил (а): 6 раз
Игорь, и мне сбросьте, пожалуйста! Очень надо принимать и разбирать почту!!!!
ProgramMaker@mail точка ru
ProgramMaker@mail точка ru
Последний раз редактировалось NewUser 13 Июль 2008, 21:29, всего редактировалось 1 раз.
-
- Ветеран
- Сообщения: 333
- Зарегистрирован: 21 Сентябрь 2005, 11:05
- Откуда: Нижний Новгород
- Контактная информация:
Собрал я пример отправки почты на С55 с использованием функций этой библиотеки. Письма оправляются, но есть загвоздка...
Если пример создан без использования клашиного окна (ну типа заполнить все параметры в коде и вызвать соответствующие методы отправки) то все ОК, если же открыть диалоговое окно для заполнения письма, то после отправки письма программа вылетает с недопустимой ошибкой на следующем витке ACCEPT цикла. Империческим путем выяснил: вылетает если вызывается метод SmtpConnect.
Конечно в код функции самой библы не влезешь, но может быть есть некие различия между окнами на Clarion и С++ или еще в чем-то, пример-то на VC7 работает без проблем...
ЗЫ: Я в курсе, что есть рабочие примеры для Clarion по отправке почты, но хочется определиться с целесообразностью использования самой библиотеки, и не только для Smtp.
ЗЫ2: По приему писем та же история, после вызова PopConnect
Если пример создан без использования клашиного окна (ну типа заполнить все параметры в коде и вызвать соответствующие методы отправки) то все ОК, если же открыть диалоговое окно для заполнения письма, то после отправки письма программа вылетает с недопустимой ошибкой на следующем витке ACCEPT цикла. Империческим путем выяснил: вылетает если вызывается метод SmtpConnect.
Конечно в код функции самой библы не влезешь, но может быть есть некие различия между окнами на Clarion и С++ или еще в чем-то, пример-то на VC7 работает без проблем...
ЗЫ: Я в курсе, что есть рабочие примеры для Clarion по отправке почты, но хочется определиться с целесообразностью использования самой библиотеки, и не только для Smtp.
ЗЫ2: По приему писем та же история, после вызова PopConnect

- Игорь Столяров
- Ветеран движения
- Сообщения: 8032
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
> Собрал я пример отправки почты на С55 с использованием функций > этой библиотеки. Письма оправляются, но есть загвоздка...
Я не использовал Catalyst для отправки почты по SMTP.
Только прием по POP3 и разбор сообщений MIME.
Проблем использования из Clarion'а нет.
Если сбросишь в форум процедуру отправки по SMTP - попробую погонять, может что и проясниться ...
Я не использовал Catalyst для отправки почты по SMTP.
Только прием по POP3 и разбор сообщений MIME.
Проблем использования из Clarion'а нет.
Если сбросишь в форум процедуру отправки по SMTP - попробую погонять, может что и проясниться ...
Ага ! Если не жалко
покажите кусок кода по подключению и отправке письма через SMTP через Catalyst Socket Tools - если есть удачный опыт. Пожалуйста !
Прием по POP3 от Игоря работает на ура, да и в хелпе на C он прозрачно написан, а вот с отправкой беда - не удается впихнуть имя логина и пароль SMTP-серверу, хоть тресни ...
Спасибо ...


Прием по POP3 от Игоря работает на ура, да и в хелпе на C он прозрачно написан, а вот с отправкой беда - не удается впихнуть имя логина и пароль SMTP-серверу, хоть тресни ...

Спасибо ...

- Игорь Столяров
- Ветеран движения
- Сообщения: 8032
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
Полностью рабочий код отправки сообщения через SMTP:
- описания переменных, констант и функций берем из библиотеки;
- назначение переменных - понятно из их наименования;
- обработку ошибок, для краткости - убрал;
- это перевод примера с VB6 (правда они "забыли" в нем показать передачу пароля на сервер - в этом и был основной затык);
- предполагаю, что MIME сообщение (т.е. сам e-mail) уже создано и записано в файл;
- Далее:
If SmtpInitialize(CSTOOLS4_LICENSE_KEY, 0) <> False
hClient = SmtpConnect(strRemoteHost,nRemotePort,60,SMTP_OPTION_EXTENDED,strLocalDomain,0)
If hClient <> INVALID_CLIENT
If SmtpAuthenticate(hClient,SMTP_AUTH_DEFAULT,strUserName,strPassword) <> SMTP_ERROR
FileMail = 'ПОЛНОЕ имя файла с сформированным MIME сообщением'
nResult = SmtpSendMessage(hClient,strFrom,strTo,FileMail,dwMessageSize,SMTP_MESSAGE_FILE)
iConnect# = SmtpDisconnect(hClient2)
end
end
SmtpUnInitialize()
end
Все - идите всречайте Ваше письмо ...
- описания переменных, констант и функций берем из библиотеки;
- назначение переменных - понятно из их наименования;
- обработку ошибок, для краткости - убрал;
- это перевод примера с VB6 (правда они "забыли" в нем показать передачу пароля на сервер - в этом и был основной затык);
- предполагаю, что MIME сообщение (т.е. сам e-mail) уже создано и записано в файл;
- Далее:
If SmtpInitialize(CSTOOLS4_LICENSE_KEY, 0) <> False
hClient = SmtpConnect(strRemoteHost,nRemotePort,60,SMTP_OPTION_EXTENDED,strLocalDomain,0)
If hClient <> INVALID_CLIENT
If SmtpAuthenticate(hClient,SMTP_AUTH_DEFAULT,strUserName,strPassword) <> SMTP_ERROR
FileMail = 'ПОЛНОЕ имя файла с сформированным MIME сообщением'
nResult = SmtpSendMessage(hClient,strFrom,strTo,FileMail,dwMessageSize,SMTP_MESSAGE_FILE)
iConnect# = SmtpDisconnect(hClient2)
end
end
SmtpUnInitialize()
end
Все - идите всречайте Ваше письмо ...

- Игорь Столяров
- Ветеран движения
- Сообщения: 8032
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
- Игорь Столяров
- Ветеран движения
- Сообщения: 8032
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз