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

EMail из xHarbour

Snake: Кто подскажет, как из программы разослать несколько сотен писем разным адресатам? Пробовал sendmail, но на отправку одного письма уходит около минуты. Пробовал формировать файл .eml, но тогда надо вручную жать кнопку "Send". Как это дело автоматизировать?

Ответов - 19

gfilatov: Snake пишет: Пробовал sendmail, но на отправку одного письма уходит около минуты Попробуй после этого изменения (цитата из xharbour changelog): ... 2009-02-03 21:00 UTC-0300 Luiz Rafael Culik Guimaraes <luiz at xharbour.com.br> ... * source/tip/sendmail.prg ! updated timeout to 3000 instead of 20000

Snake: Спасибо, помогло! А с timeout=500 вообще все мигом

Andrey: Snake пишет: Пробовал sendmail А его пришлось переделывать из МиниГУИ ? Есть ли под терминалом (gtwin, gtwvt) - sendmail ?


Snake: Он в библиотеке tip, терминал вроде без разницы. Минус - timeout и charset зашиты в модуле, хотя казалось бы очевидным вынести их в параметры. Из-за этого приходится включать в программу sendmail.prg и mail.prg

Лукашевский: Snake пишет: Пробовал sendmail Я тоже попробовал, но не получил результата. Возвращает .F. Кто-нибудь может привести пример использования? И что означает в передаваемых HB_SENDMAIL() параметрах cUser -> Required. User name for the POP3 server cPass -> Required. Password for cUser cPopServer -> Required. Pop3 server name or address если отправкой занимается SMTP-сервер, а не POP3? У меня сейчас так: HB_SendMail( "mail.post.ru", , "knigaz@post.ru", Windows(client->email), , , ; Windows("Здравствуйте!"), Windows("Тестовое письмо"), ; IIF(answer = 5, Windows(acpu), NIL), ; "login", "password", "mail.post.ru" ) Что неправильно? Отладкой выяснил, что не проходит oInMail:OpenSecure(). Что это значит?

Pager: Snake А примерчик не покажешь, как почту отправлять ?! тоже сталкнулся с проблемой "Сharset" не получается толком отослать письмо на русском. То заголовок не читается, то тело письма... СПАСИБО!

Snake: HB_SENDMAIL(cSmtp,,cFrom,cTo,,,'this is test 1','testato1',,,,,,,.t.) HB_SENDMAIL(cSmtp,,cFrom,cTo,,,'tstmail.html','testato2',,,,,,,.t.) Оба варианта ок. Лукашевский: IIF(answer = 5, Windows(acpu), NIL), ; - это что? В этом параметре должен быть список аттачей Pager: В sendmail.prg и mail.prg заменить charset "ISO-8859-1" на "windows-1251"

Лукашевский: Snake пишет: IIF(answer = 5, Windows(acpu), NIL), ; - это что? В этом параметре должен быть список аттачей acpu - это имя файла, Windows() - соответственно перекодировка имени файла из 866-й в Win-1251, "answer = 5" - это программный переключатель, что есть файл который нужно прикрепить к письму. Ну и соотв. без файла тоже пробовал, - результат один, в смысле он отсутствует. А "список аттачей" - это как, массивом?

Лукашевский: Snake пишет: HB_SENDMAIL(cSmtp,,cFrom,cTo,,,'this is test 1','testato1',,,,,,,.t.) Snake извини я не понял, а как ты задаёшь SMTP-серверу логин-пароль ? Твой вариант у меня выдаёт ту же самую ошибку.

gustow: Пример из xHarbour'овского Help'а (кстати, как уже недавно обсуждали в моей ветке, в Harbour некоторые вещи - особенно для получения почты - работают некорректно или вообще вышибают программу с ошибкой; поэтому мне и пришлось для этих целей использовать xHarbour): ---------------- см. "xHarbour Reference Documentation" - "Class Reference (text mode)" - "TIpMail()" ---------------- // The example outlines the steps required for composing an eMail // and sending it to an SMTP mail server. PROCEDURE Main LOCAL oSmtp, oEMail LOCAL cSmtpUrl LOCAL cSubject, cFrom, cTo, cBody, cFile // preparing data for eMail cSmtpUrl := "smtp://mailaccount:password@smtp.server.com" cSubject := "Testing eMail" cFrom := "MyName@Mail.server.com" cTo := "YourName@another.server.com" cFile := "File_Attachment.zip" cBody := "This is a test mail sent at: " + DtoC(Date()) + " " + Time() // preparing eMail object oEMail := TIpMail():new() oEMail:setHeader( cSubject, cFrom, cTo ) oEMail:setBody( cBody ) oEMail:attachFile( cFile ) // preparing SMTP object oSmtp := TIpClientSmtp():new( cSmtpUrl ) // sending data via internet connection IF oSmtp:open() oSmtp:sendMail( oEMail ) oSmtp:close() ? "Mail sent" ELSE ? "Error:", oSmtp:lastErrorMessage() ENDIF RETURN м.б. поможет...

Dima: А с этим сервисом по отправке кто то работал ? http://smsukraine.com.ua/services/email2sms/ если слать месагу через оутлук експресс, то приходит читаемая SMS на мобилу если слать через HB_SENDMAIL , приходят крякозяблы. если то же сообщение слать через HB_SENDMAIL себе на мыло , то приходит читаемый текст. PS Проблема только с кирилицей. PS1 Harbour 2.0

Петр: Я не пользовался, но могу сказать следующее: судя по примеру с сайта сообщение должно быть в UTF-8 //send on SMS and receive it's id for tracking //message in UTF-8 $id = $sms->sendSMS('AlphaName','+380504412345', 'Текст сообщения на русском языка в UTF-8 любой длинны'); или в транслите //just for usage - text can be translierated to use less symbols in sms echo SMSclient::translit('Текст сообщения на русском языка в UTF-8 любой длинны');

Петр: И, судя по всему, класс разработан индусами, незнакомыми с русском языка

Dima: Петр Спасибо. Завтра попробую. Текст сообщения у меня набран в CP866. Достаточно ли конвертнуть его с помощью hb_strToUTF8 ?

Петр: Dima пишет: Достаточно ли конвертнуть его с помощью hb_strToUTF8 ? Скорее всего, нет cBody := hb_strToUTF8( text, "RU866" ) - это понятно, а дальше нужно будет еще правильно установить параметры cCharset, cEncoding, т.е. cCharset := "UTF8" cEncoding := "base64" P.S. Я это написал после разглядывания исходников, опыта применения HB_SENDMAIL у меня нет.

Dima: Петр Все получилось ! Большое спасибо !

Andrey: Dima пишет: Все получилось ! Поделись примером как надо правильно делать ?

Dima: Andrey Зарегистрироваться на сервисе http://smsukraine.com.ua/ Бесплатно можно отправить 3 СМС (вроде) Пополнить счет если надо. Отправлять мыло c помощью Hb_sendmail() на мобилу , формат отправки тут http://smsukraine.com.ua/services/email2sms/ PS Отправка не только по Украине

Andrey: Спасибо БОЛЬШОЕ !



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