On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
администратор




Пост N: 5596
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.04.16 17:03. Заголовок: Hbtip -> popcli.prg


Крайне редко но бывает что при отправке почты вылезает ошибка в Методе GETOK
 
METHOD GetOk() CLASS TIPClientPOP

LOCAL nLen

::cReply := ::inetRecvLine( ::SocketCon, @nLen, 128 )
IF ::inetErrorCode( ::SocketCon ) != 0 .OR. !( Left( ::cReply, 1 ) == "+" )
RETURN .F.
ENDIF

RETURN .T.


Sendmail упал на строке
 
IF HB_ISSTRING( cPopServer ) .AND. lPopAuth

BEGIN SEQUENCE WITH __BreakBlock()
oUrl1 := TUrl():New( iif( lSSL, "pop3s://", "pop://" ) + cUser + ":" + cPass + "@" + cPopServer + "/" )
oUrl1:cUserid := StrTran( cUser, "&at;", "@" )
oPop := TIPClientPOP():New( oUrl1, xTrace )
RECOVER
RETURN .F.
END SEQUENCE

IF oPop:Open() Вот тут
oPop:Close()
ELSE
RETURN .F.
ENDIF
ENDIF




Падает на строке где живет Left c месагой не верный аргумент в функции Left.
Есть у кого идеи как это починить ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 14 [только новые]


постоянный участник


Пост N: 1203
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 15.04.16 17:07. Заголовок: Dima пишет: Есть у ..


Dima пишет:

 цитата:
Есть у кого идеи как это починить ?


Проверить, строка ли в ::cReply в этот момент.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5597
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.04.16 17:23. Заголовок: PSP пишет: Проверит..


PSP пишет:

 цитата:
Проверить, строка ли в ::cReply в этот момент.


Попробую.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5598
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.04.16 17:36. Заголовок: Dima пишет: IF ::in..


Dima пишет:

 цитата:
IF ::inetErrorCode( ::SocketCon ) != 0 .OR. !( Left( ::cReply, 1 ) == "+" )



наверное так будет
 
IF ::inetErrorCode( ::SocketCon ) != 0 .OR. Hb_isstring(::cReply) .and. !( Left( ::cReply, 1 ) == "+" )


Это кстати 2-ой найденный косяк , первый так же не исправлен в текущем Harbour.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1183
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 15.04.16 20:37. Заголовок: Dima пишет: Это кс..


Dima пишет:

 цитата:

Это кстати 2-ой найденный косяк , первый так же не исправлен в текущем Harbour.



Пишите разработчикам. Там, наверное, не один "косяк".
Вот Klass Engwall в harbour-devel пишет

The Write() method of tIPClientSMTP returns the number of bytes sent to
the mail server or -1 in case of failure, for example if the sender or
receiver email address is rejected. But hb_SendMail() ignores the result
and calls Commit() regardless of the Write() result, thus confusing the
mail server. And it always returns .T. to the calling code, whether
success of failure.

Там же (в harbour-devel) найдете патч hb_SendMail

Dima пишет:

 цитата:
наверное так будет

IF ::inetErrorCode( ::SocketCon ) != 0 .OR. Hb_isstring(::cReply) .and. !( Left( ::cReply, 1 ) == "+" )



А какую роль в функции GetOk играет nLen?



Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5599
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.04.16 20:50. Заголовок: Петр пишет: Там же ..


Петр пишет:

 цитата:
Там же (в harbour-devel) найдете патч hb_SendMail


А это где ?
Я брал с этого линка http://github.com/harbour/core/archive/master.zip

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1184
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 15.04.16 21:10. Заголовок: Это переписка разраб..


Это переписка разработчиков.

Попробуйте скачать harbour от vszakats - он что-то уже пофиксил
click here - https://github.com/vszakats/harbour-core/archive/master.zip

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5600
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.04.16 21:26. Заголовок: Петр пишет: Попробу..


Петр пишет:

 цитата:
Попробуйте скачать harbour от vszakats - он что-то уже пофиксил


Спасибо. Похоже там и функции переименованы.
Идею с GETOK вижу , но это не решит проблему если ::cReply не строка.


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5601
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.04.16 22:01. Заголовок: Dima пишет: Похоже ..


Dima пишет:

 цитата:
Похоже там и функции переименованы


Сразу не увидел переходник.
 
#if defined( HB_LEGACY_LEVEL4 )
FUNCTION hb_SendMail( ... )
RETURN tip_MailSend( ... )
#endif

И хр..н теперь поймешь чьи сырцы правильнее ))

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1185
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 15.04.16 22:42. Заголовок: Dima пишет: Идею с ..


Dima пишет:

 цитата:
Идею с GETOK вижу , но это не решит проблему если ::cReply не строка



Функция ::inetRecvLine вызывает s_inetRecvPattern
и сколько я не смотрел, так и не увидел причины почему ::cReply может быть не строкой


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1186
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 15.04.16 22:53. Заголовок: Dima пишет: И хр..н..


Dima пишет:

 цитата:
И хр..н теперь поймешь чьи сырцы правильнее ))



Не правильная постановка вопроса - это ведь git.

А название функции.. Библиотека ведь hbtip и класы TIP.., и функции tip.. По этому в чем-то Виктор прав.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5602
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.04.16 22:56. Заголовок: Петр Понятно , но м..


Петр
Понятно , но может упасть раз в неделю , раз в 2 месяца , рандомно в общем.
Причина ,возможно отвалился инет.
Если инет есть то это не вечно как и с электричеством. Но это догадка.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1187
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 15.04.16 23:09. Заголовок: Попробуйте функцию о..


Попробуйте функцию от Виктора, правильно - не правильно, а все таки на одну проверку больше, вдруг поможет.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5603
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.04.16 08:44. Заголовок: Петр Да так и сдела..


Петр
Да так и сделаю если снова упадет после моей правки.
Отдельную функцию выдергивать из его сырцов не верно будет , смотрю там
сильно отличаются сырцы HBTIP , так что дернуть нужно всю либу.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5606
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 17.04.16 15:04. Заголовок: Смотрю в сырцах Викт..


Смотрю в сырцах Виктора все уже починили (оперативно однако)

ЗЫ
Со ссылкой на эту тему.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 16
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет