Форум » [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

AndreyZh: Dima пишет: я её сам собирал ИЛИ подскажите почтовый сервис через который могу посылать без этих заморочек. Раннее проверял - не подходят mail, gmail, теперь yandex, но может быть ещё остались?

Dima: AndreyZh У меня MINGW а нужно я так понял под BCC Как вариант можно взять из сборки MiniGui под BCC

Петр: AndreyZh пишет: В принципе обращался ко всем??? Скачайте нужный вам дистрибутив xHarbour или MiniGUI для xHb click here там библиотека есть

Dima: Петр Упс , не обратил внимание что у него Xharbour

AndreyZh: Петр пишет: Скачайте нужный вам дистрибутив xHarbour или MiniGUI для xHb Преогромное спасибо Петр! Скачал, библиотеку увидел... Дальше наглеть с просьбами о помощи уже глупо - завтра (сегодня мозг уже затуманен алкоголем) попробую в свете рекомендаций Dima посылать письма! Всем спасибо за участие!

Andrey: AndreyZh пишет: скорее всего любознательный Andrey имеет сборку и опыт под xHarbour? Нет, ухожу с хХарбора на МиниГуи. Уже и забыл когда делал последний проект на хХарборе. К сожалению у меня моя рабочая программа собрана под Харбор на МиниГуи. Её помогал мне сделать Григорий. Работает уже давно, недавно пришлось кракозябы убирать (писал об этом на форуме). Если надо, могу выложить рабочий кусок на МиниГуи.

Dima: Andrey пишет: Нет, ухожу с хХарбора на МиниГуи Очередная жесть от тебя Так ты ни чего и не понял

Dima: AndreyZh На некоторых компах может понадобится Microsoft Visual C++ 2005-2008-2010-2012-2013-2015 Взять можно тут

AndreyZh: Многоуважаемые Dima, Петр - большое Вам спасибо за помощь. Однако, как заметил, что хреновый из меня программист - ну не люблю мастурбировать с инструментом, когда банально нужно решить бизнес задачу... Вот и опять не получилось, хотя и потерял уйму времени! В начале не пристыковывалась библа - старая 1.2.1 версия xHarbour, поставил полную новую версию по ссылке Петра - на основной программе полезли сотни ошибок компиляции... Однако нашел колхозное, РАБОТАЮЩЕЕ решение и может быть кому сгодится? [pre2] * ------------------------------------------------------------------------------------------------- * Посылка электронной почты с почтового сервиса. Использую объектную модель Windows. Содрал с VBS * Исходный скрипт под Windows 10 работал с приложенными замечаниями. Переделка по xHarbour не была * удачной. Использую подход: создаю текстовую строку, содержащую код скрипта, сохраняю её в файл * и запускаю на выполнения. Большинство параметров скрипта пока не передаю - нужно изучать! /* Dim oMes, v_Conf v_Conf = "http://schemas.microsoft.com/cdo/configuration/" Set oMes = CreateObject("CDO.Message") With oMes .To = "zh..t@mail.ru" 'куда отправляем .From = "Андрей <pos...@yandex.ru>" 'имя отправителя + Email .Subject = "Тема письма" .TextBody = "Body. Line 1" & VbCrLf & "Body. Line 2" & VbCrLf & "Body. Line 3" 'Сообщение .AddAttachment = "Check_auto.txt" 'Прикрепить файл .TextBodyPart.Charset = "windows-1251" 'русская кодировка With .Configuration.Fields .Item(v_Conf & "sendusing") = 2 'без использования каталога Server Exchange .Item(v_Conf & "smtpserver") = "smtp.yandex.ru" 'Адрес SMTP-сервера .Item(v_Conf & "smtpauthenticate") = 1 'Тип авторизации .Item(v_Conf & "sendusername") = "pos....@yandex.ru" 'здесь имя пользователя .Item(v_Conf & "sendpassword") = "Sol...." 'пароль .Item(v_Conf & "smtpserverport") = 25 'порт (альтернативный - 465) .Item(v_Conf & "smtpusessl") = True 'использовать ли шифрованое подключение SSL .Item(v_Conf & "smtpconnectiontimeout") = 60 'Время до завершения повторных попыток подключения .Update End With .send End With Set o_Mess = Nothing */ * Параметры: * cTo Адрес почты куда посылаем письмо * cFrom Адрес отправителя на почтовом сервисе * cSub Тема письма * cBody Тело письма - текст на строки разбивается входящим форматированием * cSmpt Адрес SMTP-сервера * cUser Имя адреса отправителя * cPass Пароль на сервисе отправителя * lSSL Использовать ли шифрованое подключение SSL PROC pzSendMail(cTo,cFrom,cSub,cBody,cSmpt,cUser,cPass,lSSL) LOCA nT:=0, nI:=0, cStr:="", cbd:=cBody PRIV cFile:="SMTPMess.vbs" // Преобразую cBody, если в нём имеются символы перевода строк CRLF в формат VBS nT := NumToken(cBody,CRLF) IF nT > 0 cBd := Token(cBody,CRLF,1) FOR nI := 2 TO nT DO cBd += [" & VbCrLf & "]+Token(cBody,CRLF,nI) ENDI // Формирую текствовую строку в досовой кодировке cStr += [Dim oMes, v_Conf]+CRLF cStr += [v_Conf = "http://schemas.microsoft.com/cdo/configuration/"]+CRLF cStr += [Set oMes = CreateObject("CDO.Message")]+CRLF cStr += [With oMes]+CRLF+Spac(3) cStr += [.To = "]+Alltrim(cTo)+["]+CRLF+Spac(3) // куда отправляем cStr += [.From = "]+Alltrim(cFrom)+["]+CRLF+Spac(3) // имя отправителя + Email cStr += [.Subject = "]+Alltrim(cSub)+["]+CRLF+Spac(3) // Тема письма cStr += [.TextBody = "]+cBd+["]+CRLF+Spac(3) // Сообщение - тело письма * Какие-то проблемы были с прикрплением файлов - пока не делаю .AddAttachment = "Check_auto.txt" 'Прикрепить файл cStr += [.TextBodyPart.Charset = "windows-1251"]+CRLF+Spac(3) // По умолчанию - русская кодировка cStr += [With .Configuration.Fields]+CRLF+Spac(6) cStr += [.Item(v_Conf & "sendusing") = 2]+CRLF+Spac(6) // без использования каталога Server Exchange cStr += [.Item(v_Conf & "smtpserver") = "]+Alltrim(cSmpt)+["]+CRLF+Spac(6) // Адрес SMTP-сервера cStr += [.Item(v_Conf & "smtpauthenticate") = 1]+CRLF+Spac(6) // Тип авторизации cStr += [.Item(v_Conf & "sendusername") = "]+Alltrim(cUser)+["]+CRLF+Spac(6) // Имя пользователя - отправителя cStr += [.Item(v_Conf & "sendpassword") = "]+Alltrim(cPass)+["]+CRLF+Spac(6) // пароль cStr += [.Item(v_Conf & "smtpserverport") = 25]+CRLF+Spac(6) // порт (альтернативный - 465) cStr += [.Item(v_Conf & "smtpusessl") = ]+IF(lSSL,"True","False")+CRLF+Spac(6) // использовать ли шифрованое подключение SSL cStr += [.Item(v_Conf & "smtpconnectiontimeout") = 60]+CRLF+Spac(6) // Время до завершения повторных попыток подключения cStr += [.Update]+CRLF+Spac(6) cStr += [End With]+CRLF+Spac(3) cStr += [.send]+CRLF cStr += [End With]+CRLF cStr += [Set o_Mess = Nothing] // Сохраняю строку в файле с заданным именем в Windows кодировке MemoWrit( cFile, HB_OEMTOANSI(cStr) ) RUN &cFile // Удаляю за собой скрипт fErase(cFile) RETU [/pre2]

Dima: AndreyZh Был бы это Harbour я бы помог , но с X я пасс , давно слез с X на версию без X и не жалею. Андрей по ходу тоже слез или уже почти слез полностью. Вариант с VBS + CDO возможно будет работать , не ковырял. Вот только что будешь делать с кодами возврата , ведь не факт что почта ушла , могут быть сбои у прова или еще что. PS С CDO fil разбирался http://clipper.borda.ru/?1-4-0-00000857-000-0-0-1369765192 Попроси его выложить пример , да и мне тоже интересно Можно еще покурить тему

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



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