Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 535

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!

У меня скорей вопрос логического характера, так как с программирование проблем нет.

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

1. Пришло письмо по объекту 1, с проблемой 1. Смс-оповещение сработало всё хорошо, сохранил в программе оповещение 1, и при следующей проверке почты, если письмо тем же оповещением 1, смс не отправляется. НО если приходит ещё письмо по объекту 1, с проблемой 2. Выходит смс так же не отправится.

Думаю организовать проверку по дате отправки, но у меня хроническая дезориентация во времени, не могу понять какие даты сопоставлять, чтобы каждый раз идентифицировать новую заявку, и отправлять по ней оповещения.

П.с. Софт проверяет почту каждые 10 минут. Записывая данные последнего полученного письма, если в тексте письма присутствует ключевое слово, отправляет смс-оповещение, с этим словом. Сейчас пока я не сделал проверку на повторение, при повторной проверки почты через 10 минут, опять отправляет уже имеющееся смс.

Нужно как то организовать проверку на новое письмо. Парсить я могу только: Дату отправки, Тему письма, от кого получено, и частично тело письма: Из-за проблем с кодировкой(у каждого клиента свои почтовые сервера и все они по своему сконфигурированы у кого-то UTF-8, у кого-то KOI-8r), в теле письма софины у меня корректно отображаются только транслит и цифры. Поэтому я делаю парсинг по одному ключевому слову, которое имеется в базе с привязанным адресом.

На данный моент алгоритм автоматизации такой:

Проверил почту.
Получил последнее письмо
Открыл Из *.ini файла и спарсил ключевое слово.
Сформировал СМС из ключевого слова и адреса
Проверил если Такое СМС было, то спать ещё 10 минут
Если СМС отличаются друг от друга.
Отправил оповещение.
Сохранил отправленное оповещение для следующей проверки.
Спать 10 минут.
Проверил почту.
Рекурсия вышеописанного цикла.

winner13 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: winner13 (статус: 1-ый класс)
Вопрос отправлен: 22 апреля 2014, 19:03
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 12; последнее сообщение — 27 апреля 2014, 06:07; участников в обсуждении: 3.
min@y™

min@y™ (статус: Доктор наук), 22 апреля 2014, 23:42 [#1]:

А в чём проблема-то?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
winner13

winner13 (статус: 1-ый класс), 23 апреля 2014, 21:03 [#2]:

Проблема в проверки, не могу нормально логику выполнения сценария придумать. Так как не ориентируюсь по времени...
Не решимых проблем нет, есть неприятные для нас решения.
min@y™

min@y™ (статус: Доктор наук), 23 апреля 2014, 22:26 [#3]:

Цитата (winner13):

не могу нормально логику выполнения сценария придумать.

Извини, но ты и проблему свою сформулировать не можешь так, чтобы Я тебя понял.
Я нихрена не понял. Напиши по-человечески.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
winner13

winner13 (статус: 1-ый класс), 26 апреля 2014, 07:49 [#4]:

Если в двух словах, как сделать проверку почты на заявки, нормально?
Не решимых проблем нет, есть неприятные для нас решения.
min@y™

min@y™ (статус: Доктор наук), 26 апреля 2014, 08:11 [#5]:

Цитата (winner13):

Если в двух словах, как сделать проверку почты на заявки, нормально?

выложи посмотреть образцы писем с заявками в формате .eml, гляну, что придумать и как фильтровать. тебе ж фильтр нужен, да?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
DNK

DNK (статус: Студент), 26 апреля 2014, 10:39 [#6]:

winner13: А что если уже обработанные письма удалять или перемещать в другую папку ящика, чтобы они не путались под ногами?

Проверил почту.
Для каждого письма
*Открыл Из *.ini файла и спарсил ключевое слово.
*Сформировал СМС из ключевого слова и адреса
*Проверил если Такое СМС не было,
**Отправил оповещение.
**Сохранил отправленное оповещение для следующей проверки.
*Переместить обработанное письмо
Спать 10 минут.
На начало.
"Digital Networked Knight"
winner13

winner13 (статус: 1-ый класс), 26 апреля 2014, 16:40 [#7]:

 <a href="https://www.delphi-int.ru/user/436/" style="color: black; text-decoration: none;">min@y™</a>: тебе ж фильтр
нужен, да?
Угу,который будет распозновать новую заявку от старой, и при получении одновременно двух писем, если письма одинаковые, то слать одно оповещение, если письма разные слать два.

<a href="https://www.delphi-int.ru/user/348/" style="color: black; text-decoration: none;">DNK</a>: *Переместить
обработанное письмо
Почти то что нужно. Решение думаю должно быть многокомпонентным. Буду перемещать письма, и на отправленные СМС записывать хешь суммы, которые будут хранится в отдельном файле, и каждый день этот файл программа будет чистить, новый день, новый файл. if Pos(SHA1, hashbd.loadfromfile('hashes.ini'))<>0, тогда отправки не будет.

Единственный вопрос, как с помощью IdMessege + POP3 компонентов, письма перемещать, из папки Входящие например в папку "Заявки". Так как POP3.Delete(1); не катит, а хелпе IdMessage я не чего такого не нашёл.
Не решимых проблем нет, есть неприятные для нас решения.
min@y™

min@y™ (статус: Доктор наук), 26 апреля 2014, 18:17 [#8]:

а не проще в поле subject или, например, comment не слать некий универсальный id заявки, собирать их в сортированный список и всё такое? я б так сделал.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
winner13

winner13 (статус: 1-ый класс), 26 апреля 2014, 21:26 [#9]:

С клиентом нужно договариваться, а это траблы те ещё.
Не решимых проблем нет, есть неприятные для нас решения.
min@y™

min@y™ (статус: Доктор наук), 26 апреля 2014, 21:34 [#10]:

Цитата (winner13):

С клиентом нужно договариваться, а это траблы те ещё.

эт ты щас к кому обращаешься?

Цитата (min@y™):

выложи посмотреть образцы писем с заявками в формате .eml, гляну

это чо, игнор? где письма?!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
winner13

winner13 (статус: 1-ый класс), 26 апреля 2014, 22:55 [#11]:

это чо, игнор? где письма?!
Я тебе стучался в асю, там линки.
Не решимых проблем нет, есть неприятные для нас решения.
min@y™

min@y™ (статус: Доктор наук), 27 апреля 2014, 06:07 [#12]:

Цитата (winner13):

Я тебе стучался в асю, там линки.

Чо за тайны мадридского двора? Нахрена через жопу асю всё делать? Там антиспам-бот. Ничо я не получал, выложь на файлопомойку, я скачаю.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:26
Выполнено за 0.03 сек.