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

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

PSP: Щас попробывал с Harbour 2, все работает. Сервер: "smtp.mail.ru", а не "mail.ru"

Dima: PSP пишет: Сервер: "smtp.mail.ru", а не "mail.ru" Да точно вернуло .T. но на (условно) bbb@gmail.com ни чего не пришло. Куда же ушло мыло , на деревню к бабушке ?

PSP: И еще: файрвол не блокирует случайно?


PSP: Dima пишет: на (условно) bbb@gmail.com ни чего не пришло. GMail мог положить это письмо в спам.

Dima: PSP пишет: И еще: файрвол не блокирует случайно? Нет PSP пишет: GMail мог положить это письмо в спам. Кинул на mail.ru , все равно ни чего нет.

PSP: Все параметры у тебя указаны. У меня в таком же виде работает, письмо приходит. Может пора на Harbour 2 переходить?

Dima: PSP пишет: Может пора на Harbour 2 переходить? А как его нынче правильно собрать со всеми Contrib ?

PSP: Вот здесь http://sourceforge.net/projects/harbour-project/files/ есть файл harbour-2.0.0-win.7z Это уже собранный Harbour под Windows для нескольких компиляторов. SendMail в библиотеке hbtip.lib (если bcc пользуешься), ее подключишь при сборке своей проги. Посмотри HBMK2 - отличный инструмент. Удачи.

Dima: Спасибо почта заработала. Но есть проблема с кирилицей ;) В названии темы , в сообщении и если вложеный файл в имени имеет кирилицу , то на мыло приходят крякозяблы

PSP: Там в параметрах есть cCharset (предпоследний, кажись). По-эксперементируй. Скачай сырцы Харбора по тому же адресу. SendMail в contrib\hbtip, посмотри описание.

PSP: Попробуй "CP866", если в досовской кодировке твой текст. Дальнейшая ковертация зависит от почтового агента. Через web-интерфес mail.ru правильно показал.

Dima: Точно , заработало. Спасибо. А если мне нужно пересобрать Rddads для 5 версии ADS , как это правильно сделать ?

Dima: Dima пишет: А если мне нужно пересобрать Rddads для 5 версии ADS , как это правильно сделать ? Все еще актуально ! Сделал так , но собрать rddads не удалось Батник set HB_DIR_ADS=c:\ads set HB_WITH_ADS=c:\ads set HB_CONTRIBLIBS=rddads win-make install -j2

Петр: HB_WITH_ADS=C:\ads\acesdk

Dima: Петр пишет: HB_WITH_ADS=C:\ads\acesdk У меня содержимое одинаково что в C:\ADS , что в C:\ads\acesdk Вообщем слил сырцы снова Батник юзал такой , все собралось. set HB_DIR_ADS=c:\ads set HB_WITH_ADS=c:\ads win-make Спасибо всем !

Dima: И все же интересно , как пересобрать отдельную библиотеку , например RddAds в Harbour 2.0 ? В Наrbour 1.1 было просто , в каталоге с каждой библой шел батник для сборки

Петр: Dima пишет: как пересобрать отдельную библиотеку , например RddAds в Harbour 2.0 ? вызывая win-make из соотв. каталога. Такой метод подразумевает, что если вы используете rddads у вас установлена переменная окружения HB_WITH_ADS Если нет - надо писать скрипт из 2-3 строчек Если у вас процессор не многоядерный j2 указывать бессмысленно.

Dima: Петр пишет: Если нет - надо писать скрипт из 2-3 строчек Можно пример ? Вам же не сложно зы В основном на Clipper пишу , на Harbour и Xhb пишу крайне редко и тд и тп. Что бы разобраться уйдет куча времени.

Петр: Dima пишет: Можно пример ? Пожалуйста [pre2]@echo off set WindowsSDKDir=%ProgramFiles%\Microsoft SDKs\Windows\v6.0A\ call "%ProgramFiles%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" set HB_COMPILER=msvc set HB_INSTALL_PREFIX=e:\hb2.1.0-msvc :: путь к ace.h set HB_WITH_ADS=E:\ace\9.10\acesdk ..\..\win-make clean ..\..\win-make install[/pre2] Скрипт нужно скопировать в harbour\contrib\rddads и запустить на исполнение В результате получим Setting environment for using Microsoft Visual Studio 2008 x86 tools. ! Building Harbour 2.1.0dev from source - http://www.harbour-project.org ! MAKE: E:/harbour/win-make 3.81 sh.exe clean ! HB_INSTALL_PREFIX: e:\hb2.1.0-msvc ! HB_HOST_PLAT: win (x86) HB_SHELL: nt ! HB_PLATFORM: win (x86) (autodetected) ! HB_COMPILER: msvc ! Component: 'zlib' found in E:/harbour/external/zlib (local) ! Component: 'pcre' found in E:/harbour/external/pcre (local) ! Component: 'openssl' not found. Configure with HB_WITH_OPENSSL. ! Component: 'gpm' not supported on win platform ! Component: 'slang' not found. Configure with HB_WITH_SLANG. ! Component: 'curses' not found. Configure with HB_WITH_CURSES. ! Component: 'x11' not found. Configure with HB_WITH_X11. ! Component: 'wattcp/watt-32' not supported on win platform ! Building Harbour 2.1.0dev from source - http://www.harbour-project.org ! MAKE: E:/harbour/win-make 3.81 sh.exe install ! HB_INSTALL_PREFIX: e:\hb2.1.0-msvc ! HB_HOST_PLAT: win (x86) HB_SHELL: nt ! HB_PLATFORM: win (x86) (autodetected) ! HB_COMPILER: msvc ! Component: 'zlib' found in E:/harbour/external/zlib (local) ! Component: 'pcre' found in E:/harbour/external/pcre (local) ! Component: 'openssl' not found. Configure with HB_WITH_OPENSSL. ! Component: 'gpm' not supported on win platform ! Component: 'slang' not found. Configure with HB_WITH_SLANG. ! Component: 'curses' not found. Configure with HB_WITH_CURSES. ! Component: 'x11' not found. Configure with HB_WITH_X11. ! Component: 'wattcp/watt-32' not supported on win platform cl.exe -I. -I../../../../../include -nologo -TP -W4 -wd4127 -Ot2b1 -EHs-c- -IE:\ace\9.10\acesdk -DUNICODE -Foads1.obj -c ../../../ads1.c ads1.c cl.exe -I. -I../../../../../include -nologo -TP -W4 -wd4127 -Ot2b1 -EHs-c- -IE:\ace\9.10\acesdk -DUNICODE -Foadsfunc.obj -c ../../../adsfunc.c adsfunc.c cl.exe -I. -I../../../../../include -nologo -TP -W4 -wd4127 -Ot2b1 -EHs-c- -IE:\ace\9.10\acesdk -DUNICODE -Foadsmgmnt.obj -c ../../../adsmgmnt.c adsmgmnt.c cl.exe -I. -I../../../../../include -nologo -TP -W4 -wd4127 -Ot2b1 -EHs-c- -IE:\ace\9.10\acesdk -DUNICODE -Foadsx.obj -c ../../../adsx.c adsx.c lib.exe -nologo -out:../../../../../lib/win/msvc/rddads.lib ads1.obj adsfunc.obj adsmgmnt.obj adsx.obj || del /q /f ../../../../../lib/win/msvc/rddads.lib Скопировано файлов: 1. Скопировано файлов: 1. Скопировано файлов: 1. Я явно указываю HB_COMPILER и HB_INSTALL_PREFIX потому, что у меня установлено несколько С компиляторов и я не использую "глобальные" переменные окружения, а создаю их в локальных скриптах. Привычка. Если у вас используется один определенный компилятор, скрипт можно упростить установив глобальные переменные.

Dima: Петр Огромное спасибо !!!

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 << Ошибку ловит. Надо бы сообщить разрабам.

Andrey: Dima пишет: Тоже стал разбираться со чтением почты , чекал на mail.ru Подскажи пожалуйста, в какой кодировке нужно отправлять сейчас для mail.ru сам текст письма и тему ? А то у меня при получении вот такие кракозябы выходят.... Тема: домофон Использую функцию hb_SendMail( ....hb_StrToUTF8( M->cPubMsg ) , hb_StrToUTF8( M->cPubSubject ),., "UTF-8") где M->cPubMsg - текст письма , M->cPubSubject - тема письма Проверка вывода в файл hb_StrToUTF8( M->cPubMsg ) , hb_StrToUTF8( M->cPubSubject ) дала правильные результаты. P.S. эта функция давно работала нормально c 2014 года, только вот перестала... Опять в mail.ru что-то поменяли.... Или в hb_SendMail() добавили другие параметры....

Dima: Andrey в какой отправляешь в такой же и принимай Andrey пишет: hb_StrToUTF8( M->cPubMsg ) там есть еще 2-й параметр

Andrey: Dima пишет: там есть еще 2-й параметр Какой ? Подскажи пожалуйста - как правильно...

Dima: Andrey пишет: Какой ? Серьезно ? Скачать сырцы 2 секунды и глянуть ChangeLog.txt еще 2 секунды. Для особо ленивых HB_STRTOUTF8( <cStr> [, <cCPID> ] ) -> <cUTF8Str>

Andrey: Dima пишет: Скачать сырцы 2 секунды и глянуть ChangeLog.txt еще 2 секунды. Да я не понял про какой параметр... Спасибо !

Петр: Andrey пишет: Использую функцию hb_SendMail( ....hb_StrToUTF8( M->cPubMsg ) , hb_StrToUTF8( M->cPubSubject ),., "UTF-8") Беглый просмотр исходников показал, что в данном случае (при явном указании cEncoding == "UTF-8" ) использовать hb_StrToUTF8 не нужно hb_SendMail( ..., M->cPubMsg, M->cPubSubject, ..., "UTF-8")

Andrey: Петр пишет: Беглый просмотр исходников показал, что в данном случае (при явном указании cEncoding == "UTF-8" ) использовать hb_StrToUTF8 не нужно Спасибо Петр !

Andrey: Вот так работает отправка (по другому выходят кракозябы): [pre2]hb_SendMail( ..., M->cPubMsg, M->cPubSubject, ..., "UTF-8") hb_SendMail( ..., M->cPubMsg, M->cPubSubject, ..., "WINDOWS-1251")[/pre2] Спасибо ответившим за помощь.

Петр: Andrey пишет: Вот так работает отправка (по другому выходят кракозябы): hb_SendMail( ..., M->cPubMsg, M->cPubSubject, ..., "UTF-8") hb_SendMail( ..., M->cPubMsg, M->cPubSubject, ..., "WINDOWS-1251") Вот это все как бы пальцем в небо, поскольку работа hb_SendMail увязана с hb_cdpSelect, чего мы, конечно, не видим и приходиться лишь гадать, кто-там и что намутил, какая кодовая страница установлена при отправке, какая при приеме, есть требование у оператора по utf-8.. Andrey пишет: ..., "WINDOWS-1251" чепушня какая-то Удачи!

Andrey: Петр пишет: чепушня какая-то На удивление работает !

AndreyZh: xHarbour! Подскажите пожалуйста... Что могло измениться? Данную функцию успешно использовал в 2014 году. Сейчас решил проверить: функция возвращает .T. - типа успешно отправлено, но письма не приходят. Использую вызов: lSend := Hb_sendmail("smtp.yandex.ru",25,"US....@yandex.ru","z...ft@mail.ru",,,"Проверка связи","Темка",,"US....","пароль","pop.yandex.ru")

PSP: AndreyZh пишет: Что могло измениться? Без шифрования Яндекс (да и другие) уже давно не работает.

AndreyZh: PSP пишет: Без шифрования Яндекс (да и другие) уже давно не работает Извините за ламерский вопрос... Просто нет места в головушке и по этой проблемке... Что мне нужно поменять? (Кроме мозгов - конечно)

PSP: К примеру, вот ТЕМА была

AndreyZh: PSP пишет: К примеру, вот ТЕМА была Спасибо и на этом, и что погуглить не посоветовали... Конечно разберусь и с этим вопросом, тем более направление указали, но являясь прикладным программистом не имею достаточно знаний и ресурсов постоянно вникать в тонкости инструмента... Подскажите пожалуйста "на пока" почтовый сервис, работающий без "шифрования", если такой есть или пожалуйста если несложно, четко и прямо укажите, как можно "по быстрому" решить проблему отправки почты?

PSP: AndreyZh, я не занимался этим плотно. Просто видел, как здесь народ это обсуждал. Так что, не стОит благодарить)

Dima: AndreyZh Так вроде ж обсуждали уже 1. Качнуть SSL DLL , линк есть в теме выше что дал PSP ( http://slproweb.com/products/Win32OpenSSL.html ) 2. Собрать либу HBSSL 4. В Hb_sendmail включить TLS 5. В проге сделать REQUEST __HBEXTERN__HBSSL__ 6. Пересобрать с либой HBSSL

AndreyZh: Dima пишет: Так вроде ж обсуждали уже Спасибо! Этого достаточно. Однако разрешите набраться наглости? Может можно дать сразу ссылку на скачку собранной библиотеки HBSSL для xHarbour и привести пример вызова с TLS из фразы "4. В Hb_sendmail включить TLS "? - остальное Ваш покорный слуга кажется умеет

Dima: AndreyZh пишет: Может можно дать сразу ссылку на скачку собранной библиотеки HBSSL для xHarbour я её сам собирал ) По поводу SSL , смотрим параметр lSSL [/pre2] FUNCTION hb_SendMail( cServer, nPort, cFrom, xTo, xCC, xBCC, cBody, cSubject, ; aFiles, cUser, cPass, cPopServer, nPriority, lRead, ; xTrace, lPopAuth, lNoAuth, nTimeOut, cReplyTo, ; lSSL, cSMTPPass, cCharset, cEncoding, cClientHost ) /* cServer -> Required. IP or domain name of the mail server nPort -> Optional. Port used my email server cFrom -> Required. Email address of the sender xTo -> Required. Character string or array of email addresses to send the email to xCC -> Optional. Character string or array of email addresses for CC (Carbon Copy) xBCC -> Optional. Character string or array of email addresses for BCC (Blind Carbon Copy) cBody -> Optional. The body message of the email as text, or the filename of the HTML message to send. cSubject -> Optional. Subject of the sending email aFiles -> Optional. Array of attachments to the email to send cUser -> Required. User name for the POP3 server cPass -> Required. Password for cUser cPopServer -> Required. POP3 server name or address nPriority -> Optional. Email priority: 1=High, 3=Normal (Standard), 5=Low lRead -> Optional. If set to .T., a confirmation request is send. Standard setting is .F. xTrace -> Optional. If set to .T., a log file is created (smtp-<n>.log). Standard setting is .F. If a block is passed, it will be called for each log event with the message a string, no param on session close. lPopAuth -> Optional. Do POP3 authentication before sending mail. lNoAuth -> Optional. Disable Autentication methods nTimeOut -> Optional. Number os ms to wait default 10000 (10s) cReplyTo -> Optional. lSSL -> Optional. Need SSL at connect time (TLS need this param set to False) cSMTPPass -> Optional. cCharset -> Optional. cEncoding -> Optional. cClientHost -> Optional. Domain name of the SMTP client in the format smtp.example.com OR client IP surrounded by brackets as in [200.100.100.5] Note: This parameter is optional for backwards compatibility, but should be provided to comply with RFC 2812. */ [/pre2] Все параметры живут в сырце

AndreyZh: Dima пишет: я её сам собирал Вот и попросил... Что бы не вникать в процессы сборки из сырцов... уже мучился с ней когда пытался научиться принимать почту - потерял 4 дня, ничего не сделал... проще было "птичку" настроить, но тогда "очень надо" было, а сейчас просто проверить. В принципе обращался ко всем???... скорее всего любознательный Andrey имеет сборку и опыт под xHarbour? А Вы насколько понимаю под Harbour собирали?

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" ) Так и не исправили с тех пор

Alex_Cher: Нарисовалась задача - сразу после создания отчетов файлы отправлять по e-mail заказчику. С hb_SendMail() разобрался ... вылезла другая хрень ... Во всей конторе стоит антивирус McAfee (понятно, начальство деньги экономит ...) и при активации "Защита доступа" почта не уходит. С Касперским проблем нет. ... Вопрос - это дерьмо можно как-нибудь обойти ? (Смену антивируса не предлагать).

PSP: Alex_Cher пишет: это дерьмо можно как-нибудь обойти ? Обычно в настройках любого антивируса можно указать исключения.



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