On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 101
Зарегистрирован: 06.02.07
ссылка на сообщение  Отправлено: 14.11.09 19:14. Заголовок: получение почты из Harbour-программы


Нет ли у кого опыта получения почты с аттачами из Harbour-программы?

DeleteEmail и CheckMailBox в SAMPLES смотрел, на старте помогло, но... в там используемом классе "Socket" (как понял, во всяком случае) плохо с работой с аттачами... а мне-то как раз с ними работать и надо.

Решил пользовать классы из библиотеки TIP.LIB (ранее HBTIP вроде бы она была), т.е. tURL, TIpClientPop... но с документацией по ним беда (т.е. фактически нету). Вот и разбираюсь постепенно (а поразобравшись - опубликую "накопленный опыт" или как наглядный пример, или как нормальное описание, или как то и другое)...

Стоит такая задача автоматизации (как раз в разрезе "свиняче-гриппозной" эпидемии) (и слепить надо довольно срочно, аж к понедельнику-вторнику, т.е. к 16-17.11.09 - собственно, все остальное ясно как делать, кроме "грамотной" работы с почтовым сервером):

1) наши больницы (Свердловская область 300-400 шт.) будут слать нам (на определенный и им известный адрес) КАЖДЫЙ день по письму, к которому приаттачено 4 XLS-ки (к примеру, для больницы с кодом "015" это будут "a015.xls", "b015.xls", "c015.xls", "d015.xls") с данными, сколько и какого народу заболело-лечится-померло и пр.

2) отчетный период - с 11:00 до 11:00 (т.е. после 11:00 забираем все, что накопилось в ящике "Входящие" на мэйл-сервере - и пусть кидают снова; а мы тем временем - уже другой прогой, это не моя забота - суммируем все по области и высылаем сводку в Минздрав).

3) моей проге надо:

а) законнектиться (умею);
б) залогиниться (умею);
в) получить кол-во писем в ящике (умею);
... вот дальше пока не получается ...
г) прочитать первое из новых писем (кстати, как определить "новизну" письма?);
д) если есть аттачи - и именно четыре нужных экселки - сохранить их в определенную папку;
е) если есть еще новые письма - перейти к следующему письму;
ж) если нет - отлогиниться, закрыть сессию и выйти (умею).

Небольшой пример, что уже получается:
Скрытый текст

Кто в данной тематике продвинут - подскажите, пожалуйста. И срочно!

Пользую HMG Ext 1.7.75-76 Harbour 2.0.0beta3 (Rev.12849)

Помогшему (помогшим) - антигриппозную маску в подарок! :)

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 70 , стр: 1 2 3 4 All [только новые]


администратор




Пост N: 5494
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.02.16 19:44. Заголовок: AndreyZh Сделай лог..


AndreyZh
Сделай лог приема/отправки (есть опция) и разбери его , возможно нужно включить SSL

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 319
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 29.02.16 20:40. Заголовок: Dima пишет: Сделай..


Dima пишет:

 цитата:
Сделай лог приема/отправки (есть опция) и разбери его , возможно нужно включить SSL



Дима спасибо! Но ничего не понял?

1.Сделай лог приема/отправки (есть опция)

Как и где?

2. и разбери его

Какой формат и как его увидеть?

3. возможно нужно включить SSL

Как? Хотя смотрел настройки "учетной записи" в Thunbird - там не включено

4. Как можно увеличить таймаут? Может просто не успеваю "достучаться"?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5495
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.02.16 22:29. Заголовок: AndreyZh пишет: 1.С..


AndreyZh пишет:

 цитата:
1.Сделай лог приема/отправки (есть опция)

Как и где?



AndreyZh пишет:

 цитата:
oPop := TIpClientPop():new( "pop://Andrey@pricup.com:****@pop.pricup.com" )



TIpClientPop():new( "pop://Andrey@pricup.com:****@pop.pricup.com", .T.) // видимо так , смотри сырец
по умолчанию на POP , порт 110



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 175
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 29.02.16 22:31. Заголовок: Почта...


Не уверен, что выбранный метод..TIpClientPop - лучшее решение

можно попробовать hb_sendmail или TIpClientSmtp

Что такое лог ?
Во всех методах есть параметр - включить создание лог файла
при ltrace=.t. создается лог - файл с именем SMTP-nnn.log
где nnn - порядковый номер сеанса

// preparing SMTP object
oSmtp := TIpClientSmtp():new( cSmtpUrl, ltrace )

... так выглядит лог-файл
20150801-19:53:55 :INETCONNECT( me.myserver.ru.com, 25 )
>> <pointer> <<

20150801-19:53:55 :INETERRORCODE( <pointer> )
>> 0 <<

20150801-19:53:55 :INETRECVLINE( <pointer>, , 512 )
>> 220 post.myserver.ru.com Microsoft ESMTP MAIL Service ready at Sat, 1 Aug 2015 19:53:52 +0300 <<

20150801-19:53:55 :INETERRORCODE( <pointer> )
>> 0 <<

20150801-19:53:55 :INETSENDALL( <pointer>, 9, HELO ОТПРАВИТЕЛЬ<cr><lf> )
>> 9 <<

20150801-19:53:55 :INETRECVLINE( <pointer>, , 512 )
>> 250 post.myserver.ru.com Hello [83.167.104.184] <<

20150801-19:53:55 :INETERRORCODE( <pointer> )
>> 0 <<

20150801-19:53:55 :INETSENDALL( <pointer>, 28, MAIL FROM: <me@myserver.com><cr><lf> )
>> 28 <<

20150801-19:53:55 :INETRECVLINE( <pointer>, , 512 )
>> 250 2.1.0 Sender OK <<

20150801-19:53:55 :INETERRORCODE( <pointer> )
>> 0 <<

20150801-19:53:55 :INETSENDALL( <pointer>, 25, RCPT TO: <who@me.myserver.com><cr><lf> )
>> 25 <<

20150801-19:53:55 :INETRECVLINE( <pointer>, , 512 )
>> 250 2.1.5 Recipient OK <<

20150801-19:53:55 :INETERRORCODE( <pointer> )
>> 0 <<

20150801-19:53:55 :INETSENDALL( <pointer>, 6, DATA<cr><lf> )
>> 6 <<

20150801-19:53:55 :INETRECVLINE( <pointer>, , 512 )
>> 354 Start mail input; end with <CRLF>.<CRLF> <<

20150801-19:53:55 :INETERRORCODE( <pointer> )
>> 0 <<

....
2) Нужно понять или настроить - какого типа авторизацию просит почтовый сервер, через который Вы пробуете работать.
Отправлять письма можно:
1) через свой собственный сервер - все настройки полностью Ваши
2) публичный или корпоративный - надо соблюдать правила чужого сервера.
Это номера портов, SSL или нет , и т.д.
..
В примерах достаточно инфы, чтобы сделать свою почтовую службу





Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5496
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.03.16 00:02. Заголовок: petr707 пишет: Отпр..


petr707 пишет:

 цитата:
Отправлять письма можно:


Андрей хочет принимать мыло.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 320
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 01.03.16 09:03. Заголовок: Dima пишет: Андрей ..


Dima пишет:

 цитата:
Андрей хочет принимать мыло.


Абсолютно верно... и как ТС для сохранения и обработки вложений

Сейчас продолжу эксперименты

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 321
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 01.03.16 11:11. Заголовок: Так и ничего не доби..


Так и ничего не добился!

Код:
cUrl := pop://Andrey@pricup.com:****@pop.pricup.com
oUrl := tURL():New( cUrl )
oPop := TIpClientPop():new( oUrl, .F. ) // .T. Трассировка соединения
oPop:nDefaultPort := 110
oPop:nConnTimeout := 500000

IF !oPop:open()

Возвращает .F. и по факту таймаут не меняется... Файлы трассировки при включении пустые... Непонятно!!! Во всех интернетовских примерах и обсуждениях это беспроблемно работающий код?

Ping по адресу: pop.pricup.com проходят, пытался заменять на прямой адрес 89.111.176.249 - абсолютно аналогично

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5497
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.03.16 11:20. Заголовок: файер не блочит ?..


файер не блочит ?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 322
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 01.03.16 12:17. Заголовок: Dima пишет: файер н..


Dima пишет:

 цитата:
файер не блочит ?


Нет всё что можно отключил - те же история... Не понятно и до меня тяжело доходит, когда нет ни сообщений, ни диагностик, а лишь "срединение не доступно"... ещё конечно полазию по интернету, м.б. какие ещё нюансы нарою?


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5498
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.03.16 15:31. Заголовок: AndreyZh пишет: oPo..


AndreyZh пишет:

 цитата:
oPop := TIpClientPop():new( "pop://Andrey@pricup.com:****@pop.pricup.com" )
oPop:nConnTimeout := 20000 - впрочем ставил разные значения - всё без разницы


Пробнул у себя с mail.ru , лог ведется , но он меня тормознул месагой
"-ERR POP3 is available only with SSL or TLS connection enabled" в логе
oPop:nConnTimeout ставил 2000

AndreyZh пишет:

 цитата:
cUrl := pop://Andrey@pricup.com:****@pop.pricup.com


вот так надо в кавычках
"pop://Andrey@pricup.com:****@pop.pricup.com"


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 323
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 01.03.16 18:40. Заголовок: Dima пишет: вот так..


Dima пишет:

 цитата:
вот так надо в кавычках "pop://Andrey@pricup.com:****@pop.pricup.com"


Извините за молчание - работа в "поле"... Конечно ставил в кавычках, просто при копировании не отразил...

Вариантов решения общей "задачи" - сохранение вложение довольно много, например настройка почтового клиента на сохранение вложений... просто интересно было решить задачку в рамках средств xHarbour, тем более, что имеются такие "красивые" согласно документации средства. Ещё поизучаю опыт из интернета, но если не получится - не судьба

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5500
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.03.16 19:04. Заголовок: AndreyZh пишет: про..


AndreyZh пишет:

 цитата:
просто интересно было решить задачку в рамках средств xHarbour


Так у тебя xHarbour все таки. А я тестил на Harbour

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1187
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 01.03.16 19:31. Заголовок: AndreyZh, а доступ к..


AndreyZh, а доступ к логам почтового сервера pop.picup.com есть? Может там что-то интересное найдётся?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 324
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 01.03.16 21:45. Заголовок: Dima пишет: Так у т..


Dima пишет:

 цитата:
Так у тебя xHarbour все таки. А я тестил на Harbour


Извини, что не указал... просто стартовая тема была тоже под xHarbour и кажется тоже эксперименты безрезультатны. Для данной задачи мне по барабану - может быть и Harbour, т.к. это небольшая изолированная от других моих проектов задача, а по структуре баз всё идентично

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 325
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 01.03.16 21:46. Заголовок: PSP пишет: AndreyZh..


PSP пишет:

 цитата:
AndreyZh, а доступ к логам почтового сервера pop.picup.com есть? Может там что-то интересное найдётся?


Думаю, что доступа нет, но мне главное решение "в принципе", а почтовый ящик можно сделать на любом сервере - лишь бы работало!

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 176
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 01.03.16 22:21. Заголовок: А другим софтом - доступ к этому ящику есть ?


Удается ли прочитать письма этого почтового ящика стандартным почтовым клиентом , Outlook' ом , например ?
В этом клиенте - есть же настройки портов и прочее..

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5501
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.03.16 22:26. Заголовок: Был похожий глюк на ..


Был похожий глюк на Harbour 1.x
http://clipper.borda.ru/?1-4-0-00000508-000-10001-0-1337333829
Не берусь судить о Xharbour так как не использую более.
Пробни все таки свой примерчик собрать на последнем более менее свежем Harbour.
Пробовал твой же пример из 7 строчек , все путем.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 326
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 02.03.16 11:00. Заголовок: petr707 пишет: Удае..


petr707 пишет:

 цитата:
Удается ли прочитать письма этого почтового ящика стандартным почтовым клиентом , Outlook' ом , например ? В этом клиенте - есть же настройки портов и прочее..


Всё настраивал и работаю с Thunderbird и понятно, что спокойно вхожу через броузер

Dima пишет:

 цитата:
Был похожий глюк на Harbour 1.x http://clipper.borda.ru/?1-4-0-00000508-000-10001-0-1337333829 Не берусь судить о Xharbour так как не использую более. Пробни все таки свой примерчик собрать на последнем более менее свежем Harbour. Пробовал твой же пример из 7 строчек , все путем


Есть такой глюк с mail.ru, но через другие почтовые сервера отправка писем из прог на xHarbour при помощи Hb_sendmail не вызывает проблем

Сейчас, в перерывах "между" попробую поставить Harbour и посмотреть на нём

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 327
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 02.03.16 13:07. Заголовок: Разрешите для начала..


Разрешите для начала анекдот?


 цитата:
Еврей приходит к Раввину, и говорит:
- Ребе, помогите, куры дохнут!
Раввин подумал, порылся в Талмуде, и говорит:
- Попробуй их в морской воде искупать.
Еврей возвращается через неделю, и говорит:
- Ребе, всё равно куры дохнут!
Раввин подумал, порылся в Талмуде, и говорит:
- Попробуй их кормить свежей редькой.
Еврей возвращается через неделю, унылый, и говорит:
- Ребе, куры все сдохли!
Раввин почесал в затылке, и говорит:
- Жаль, а у меня ещё столько хороших идей было...



Установил сначала Harbour на другом ПК, где когда-то трахался с ним сейчас в работе... и конечно кучка проблем со сборками программ - одна из причин почему использую xHarbour: меньше плясок с бубнами... конечно с ходу не получилось, тем более, что дергают.

Тогда просто скопировал MiniGui, где так же есть свежий Harbour - более простое решение ради двух строк кода... Затем по "советам" начал перебирать свои почтовые ящики и пробовать передачу параметра в TIpClientPop по символьной переменной или объекту, например:
oUrl := tURL():New( "pop://poseydon2000solprod@yandex.ru:****@pop.yandex.ru" )
oPop := TIpClientPop():new( oUrl, .T. )

..... Короче, как не меняй эффект один, только Harbour хотя бы идентичные логи лепит, хотя и таймаут реально не изменяет, например:

20160302-12:18:49 :INETCONNECT( pricup.com, 110 )
>> <pointer> <<
20160302-12:18:49 :INETERRORCODE( <pointer> )
>> 17 <<

20160302-12:25:58 :INETCONNECT( mail.ru, 110 )
>> <pointer> <<
20160302-12:25:58 :INETERRORCODE( <pointer> )
>> 17 <<


20160302-12:43:59 :INETCONNECT( yandex.ru, 110 )
>> <pointer> <<
20160302-12:43:59 :INETERRORCODE( <pointer> )
>> 17 <<


... В общем понял, что нужно искать более проработанный инструмент или терять время, когда его будет больше

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5502
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 02.03.16 15:05. Заголовок: AndreyZh пишет: 201..


AndreyZh пишет:

 цитата:
20160302-12:25:58 :INETCONNECT( mail.ru, 110 )


До лампочки

AndreyZh пишет:

 цитата:
20160302-12:43:59 :INETCONNECT( yandex.ru, 110 )


И это тоже , так как на них обоих включена обязательная SSL ,
поэтому без HBSSL тут не обойтись.
Порт 110 так же не катит.


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 70 , стр: 1 2 3 4 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 294
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет