Форум » [x]Harbour » Hb_sendmail » Ответить

Hb_sendmail

Dima: Что то не получается почту отправить. Что я делаю не так ? Hb_sendmail("mail.ru",25,"dim@mail.ru",; "bbb@gmail.com",,,"Проверка связи",; "Темка",,"dim","parolik","pop.mail.ru") // возвращает .f. Harbour 1.1 Rev. 9661

Ответов - 71, стр: 1 2 3 4 All

Dima: PSP пишет: Попробуй "CP866" я уже писал что сработало на ура в том числе касается и вложений. Есть другая проблема. Письмо шлю с запросом уведомления о прочтении. Получаю мыло , запрос об отправке уведомления вылазит. При попытке его отправить Аутглюк Экспресс пишет что уведомление отправить не удалось. Проверял 5 раз , одно и то же. Проверил отправку мыла с уведомлением через Аутглюк , все в норме.

PSP: Dima пишет: Аутглюк Экспресс пишет ThunderBird 3.0.1 отправил. Если требуется подтверждение прочтения, в заголовок письма просто добавляется строка: Disposition-Notification-To: <адрес-куда-слать> Это стандартно. Имхо, должно работать.

Dima: PSP пишет: ThunderBird 3.0.1 отправил Значит дело в Аутглюке.

PSP: Dima пишет: Значит дело в Аутглюке. Извини, Дим, не могу сказать, не знаю.

Dima: А есть какие то ограничения на ллину пароля в HB_sendmail (Harbour) ? С паролем длиной 18 символов почта как бы уходит но в пункт назначения не приходит. С паролем длиной 13 символов уходит и приходит.

Dima: Dima пишет: С паролем длиной 18 символов почта как бы уходит но в пункт назначения не приходит Уменьшили длину пароля до 12 символов , заработало однако ;)

Dima: Странная штука происходит. При не верном пароле Hb_sendmail возвращает .T. , мыло естественно до адресата не доходит. Куда копать ? :) PS Кто нибудь может проверить у себя что вернет Hb_sendmail если пароль введен не верный. PS1 Юзанул с включеной опцией btrace (.t.) в логе увидел [pre2] 20110817-14:24:07 :INETRECVLINE( <pointer>, , 128 ) >> -ERR Password supplied for "blabla@mail.ru" is incorrect << [/pre2] Спрашивается почему Hb_sendmail возвращает .T. ?

Dima: Проехали. Подправил код Hb_sendmail [pre2] IF cPopServer != NIL .AND. lPopAuth BEGIN SEQUENCE oUrl1 := tUrl():New( iif( lTLS, "pop3s://" , "pop://" ) + cUser + ":" + cPass + "@" + cPopServer + "/" ) oUrl1:cUserid := StrTran( cUser, "&at;", "@" ) opop:= tIPClientPOP():New( oUrl1, bTrace ) IF oPop:Open() oPop:Close() ELSE // добавил lReturn := .F. // добавил ENDIF RECOVER lReturn := .F. END SEQUENCE ENDIF [/pre2]

PSP: Надо бы разработчикам сообщить.

Pasha: PSP пишет: Надо бы разработчикам сообщить. В Harbour SVN этот баг тоже живет, см. contrib\hbtip\sendmail.prg

PSP: Pasha пишет: В Harbour SVN этот баг тоже живет, см. contrib\hbtip\sendmail.prg Дык, Дима в нем и правил, имхо...

Pasha: PSP пишет: Надо бы разработчикам сообщить. Сообщил

Softlog86: Пытался запустить отправку почты через HB_SENDMAIL() Вот ошибка : Error: Unresolved external 'WSAIoctl' referenced from C:\MINIGUI\HARBOUR\LIB\HBRTL.LIB|hbsocket HARBOUR 3.2.0 Чего не хватает при линковке ??

Pasha: Softlog86 пишет: Чего не хватает при линковке ?? Если используется компилятор bcc, то надо подключить библиотеку ws2_32.lib

Dima: Новая печаль со свежим Hb_sendmail. Создал письмо на 15 метров и во время отправки отключил инет. Hb_sendmail вернул TRUE , что не правильно. Не пойму пока понять где и править сырец. Есть у кого мысли ?

Dima: Поигрался слегка. Надо ловить возврат у последнего oInMail:Commit() , если инета нет он вернет .F. Сейчас там ни каких проверок нет [pre2] oInMail:Write( hb_MailAssemble( cFrom, xTo, xCC, cBody, cSubject, aFiles, nPriority, lRead, cReplyTo, cCharset, cEncoding ) ) oInMail:Commit() oInMail:Close() RETURN .T. [/pre2] Вот так наверное надо [pre2] oInMail:Write( hb_MailAssemble( cFrom, xTo, xCC, cBody, cSubject, aFiles, nPriority, lRead, cReplyTo, cCharset, cEncoding ) ) lConnect:=oInMail:Commit() oInMail:Close() if !lConnect Return .F. endif RETURN .T. или так lConnect:=oInMail:Commit() oInMail:Close() RETURN lConnect [/pre2]

Dima: Печаль. Не ловит Hb_sendmail вот такую месагу и выдает что все нормуль 451 Ratelimit exceeded for mailbox

Dima: Dima пишет: 451 Ratelimit exceeded for mailbox И еще вот такую не ловит >> 451 Temporary local problem - please try later << Не подскажет кто , где править сырец ? Или лучше заюзать win_MAPISendMail (может он понадежнее будет) ? Dima пишет: Не подскажет кто , где править сырец ? Наверное тут [pre2] METHOD GetOk() CLASS TIPClientSMTP ::cReply := ::inetRecvLine( ::SocketCon,, 512 ) IF ::inetErrorCode( ::SocketCon ) != 0 .OR. ! HB_ISSTRING( ::cReply ) .OR. hb_LeftEq( ::cReply, "5" ) .OR. hb_LeftEq( ::cReply, "451" ) RETURN .F. ENDIF RETURN .T. [/pre2]

Dima: Dima пишет: .OR. hb_LeftEq( ::cReply, "451" ) а если учесть что ошибок начиная с цифры 4 может быть много ( тут подробнее) тогда нужно вот так .OR. hb_LeftEq( ::cReply, "4" )

Dima: Dima пишет: .OR. hb_LeftEq( ::cReply, "4" ) Правка оказалась правильной. Сегодня снова заглючил пров. >> 451 Temporary local problem - please try later << Ошибку ловит. Надо бы сообщить разрабам.



полная версия страницы