Автор | Сообщение |
|
| |
Пост 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. Есть у кого идеи как это починить ?
|
|
|
Ответов - 14
[только новые]
|
|
|
| постоянный участник
|
Пост N: 1203
Зарегистрирован: 27.01.07
|
|
Отправлено: 15.04.16 17:07. Заголовок: Dima пишет: Есть у ..
Dima пишет: цитата: | Есть у кого идеи как это починить ? |
| Проверить, строка ли в ::cReply в этот момент.
|
|
|
|
| |
Пост N: 5597
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.04.16 17:23. Заголовок: PSP пишет: Проверит..
PSP пишет: цитата: | Проверить, строка ли в ::cReply в этот момент. |
| Попробую.
|
|
|
|
| |
Пост 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.
|
|
|
|
| постоянный участник
|
Пост 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?
|
|
|
|
| |
Пост N: 5599
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.04.16 20:50. Заголовок: Петр пишет: Там же ..
|
|
|
|
| постоянный участник
|
Пост N: 1184
Зарегистрирован: 09.10.06
|
|
Отправлено: 15.04.16 21:10. Заголовок: Это переписка разраб..
|
|
|
|
| |
Пост N: 5600
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.04.16 21:26. Заголовок: Петр пишет: Попробу..
Петр пишет: цитата: | Попробуйте скачать harbour от vszakats - он что-то уже пофиксил |
| Спасибо. Похоже там и функции переименованы. Идею с GETOK вижу , но это не решит проблему если ::cReply не строка.
|
|
|
|
| |
Пост N: 5601
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.04.16 22:01. Заголовок: Dima пишет: Похоже ..
Dima пишет: цитата: | Похоже там и функции переименованы |
| Сразу не увидел переходник. #if defined( HB_LEGACY_LEVEL4 ) FUNCTION hb_SendMail( ... ) RETURN tip_MailSend( ... ) #endif И хр..н теперь поймешь чьи сырцы правильнее ))
|
|
|
|
| постоянный участник
|
Пост N: 1185
Зарегистрирован: 09.10.06
|
|
Отправлено: 15.04.16 22:42. Заголовок: Dima пишет: Идею с ..
Dima пишет: цитата: | Идею с GETOK вижу , но это не решит проблему если ::cReply не строка |
| Функция ::inetRecvLine вызывает s_inetRecvPattern и сколько я не смотрел, так и не увидел причины почему ::cReply может быть не строкой
|
|
|
|
| постоянный участник
|
Пост N: 1186
Зарегистрирован: 09.10.06
|
|
Отправлено: 15.04.16 22:53. Заголовок: Dima пишет: И хр..н..
Dima пишет: цитата: | И хр..н теперь поймешь чьи сырцы правильнее )) |
| Не правильная постановка вопроса - это ведь git. А название функции.. Библиотека ведь hbtip и класы TIP.., и функции tip.. По этому в чем-то Виктор прав.
|
|
|
|
| |
Пост N: 5602
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.04.16 22:56. Заголовок: Петр Понятно , но м..
Петр Понятно , но может упасть раз в неделю , раз в 2 месяца , рандомно в общем. Причина ,возможно отвалился инет. Если инет есть то это не вечно как и с электричеством. Но это догадка.
|
|
|
|
|
| постоянный участник
|
Пост N: 1187
Зарегистрирован: 09.10.06
|
|
Отправлено: 15.04.16 23:09. Заголовок: Попробуйте функцию о..
Попробуйте функцию от Виктора, правильно - не правильно, а все таки на одну проверку больше, вдруг поможет.
|
|
|
|
| |
Пост N: 5603
Зарегистрирован: 17.05.05
|
|
Отправлено: 16.04.16 08:44. Заголовок: Петр Да так и сдела..
Петр Да так и сделаю если снова упадет после моей правки. Отдельную функцию выдергивать из его сырцов не верно будет , смотрю там сильно отличаются сырцы HBTIP , так что дернуть нужно всю либу.
|
|
|
|
| |
Пост N: 5606
Зарегистрирован: 17.05.05
|
|
Отправлено: 17.04.16 15:04. Заголовок: Смотрю в сырцах Викт..
Смотрю в сырцах Виктора все уже починили (оперативно однако) ЗЫ Со ссылкой на эту тему.
|
|
|
|