Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.07.12;
Скачать: CL | DM;

Вниз

А кто чем почту читает ? :)   Найти похожие ветки 

 
Игорь Шевченко ©   (2009-05-08 01:32) [0]

Есть нужда почитать почту, автоматизировано, разбирая содержимое писем, желательно в различных кодировках, крайне желательно преобразовывать все это к windows-1251, нужда также имеется в обработке приаттаченных файлов, точнее в распознавании их корректных имен опять же в различных кодировках.

Ранее для этой нужды пользовались компоненты Mail2000, слегка доработанные напильником до нужного размера, но подобный паллиатив не устраивает, как как с разными почтовыми кодировками оно работать, так как хочется, не умеет, а напильник уже не помогает.

Собственно, вопрос в чем: если кто-то уже пользуется чем-то для подобной обработки почты, просьба поделиться нужными словами, может, есть какие-то готовые бесплатные/стандартные компоненты.

С Indy не знаком совсем, если оно умеет, просьба ткнуть в пример(ы), мои поиски в гугле на тему обработки почтовых писем посредством Indy результатов не дали, может, не повезло.


 
Хитрий Лис   (2009-05-08 01:40) [1]

Один уважаемый мастер советует Internet Component Suite.
Только там один существенный для меня недостаток - нету IMAP.


 
Германн ©   (2009-05-08 01:51) [2]


> А кто чем почту читает ? :)
>
> Игорь Шевченко ©   (08.05.09 01:32)  

Я - читаю Батом. Но, очевидно, это не твой случай. :(


 
Игорь Шевченко ©   (2009-05-08 01:57) [3]

Хитрий Лис   (08.05.09 01:40) [1]


> Только там один существенный для меня недостаток - нету
> IMAP.


POP3 в принципе достаточно, но интересует не сколько само чтение, сколько обработка полученных писем. Опять же, ссылка на пример, пусть даже простой, приветствуется.

Германн ©   (08.05.09 01:51) [2]


> Я - читаю Батом


Автоматизированно ?


 
KilkennyCat ©   (2009-05-08 02:20) [4]

Koma-Mail
никакой автоматизации.
и нафиг не надо.
да и не читаю, один фиг, все сплошной спам.


 
Раиса ©   (2009-05-08 03:41) [5]

TIdPOP3 автоматически с указанных доменов


 
brother ©   (2009-05-08 04:39) [6]

> > Я - читаю Батом
>
>
> Автоматизированно ?


> Но, очевидно, это не твой случай. :(


 
Eraser ©   (2009-05-08 04:53) [7]

> [0] Игорь Шевченко ©   (08.05.09 01:32)


> А кто чем почту читает ? :)

gmail.com


 
turbouser ©   (2009-05-08 08:35) [8]


> Игорь Шевченко ©

Indy. Все примеры как работать - тут: IdPOP3 / IdSMTP / IdMessage
http://indyproject.org/Sockets/Demos/index.EN.aspx


 
oldman ©   (2009-05-08 08:45) [9]


> А кто чем почту читает ? :)
>
> Игорь Шевченко ©   (08.05.09 01:32)  


IE.
Прямо на mail.yandex.ru


 
palva ©   (2009-05-08 08:45) [10]

В Indy есть класс TIdMessage, который позволяет загрузить письмо из файла (или потока). В документации пишут, что файл для LoadFromFile должен быть создан методом SaveToFile http://www.indyproject.org/docsite/html/frames.html?frmname=topic&frmfile=TIdMessage_LoadFromFile@string@Boolean.html но по-видимому это тот же формат который возникает при сохранении письма из Outlook Express (.eml) или странички из Internet Explorer (.mht). Сразу возникает вопрос: как устроена база писем на диске. Если в виде папок, в которых лежат файлы .eml, то это самое то. Наверно, можно подобрать почтовый клиент, который хранит письма именно в таком виде. Outlook Express не подходит. Там обычно каждая папка клиента хранится на диске в виде одного файла.

Клас TIdMessage имеет удобные средства по работе с вложениями.


 
palva ©   (2009-05-08 08:49) [11]

Если письма получаются при помощи Outlook, то логично использовать автоматизацию, которую Outlook предоставляет. Наверно, в этом случае вообще проще обойтись без Delphi.


 
Andy BitOff ©   (2009-05-08 09:21) [12]

Игорь, видмо, бат подойдет, надо только покопаться с плагинами. Сам бат прекрасно сортирует и обрабатыват (в том числе и вложения) и имеет возможность подключения плагинов. Надо только найти описание интерфейса. У меня к сожалению трафик, так что попробуйте сами поискать. Я думаю, что там можно самому накрутить достаточно.
Но это только предположение.


 
Rouse_ ©   (2009-05-08 09:37) [13]

Я читаю через перепиленный ICS.


 
blackman ©   (2009-05-08 09:50) [14]

Компоненты Indy
http://articles.org.ru/cfaq/index.php?qid=122
C примером демонстрирующим этапы создания простого текстового сервера, а также способы его отладки.
Indy компоненты (вкладка indy clients)
http://articles.org.ru/cfaq/index.php?qid=2982

Глубины INDY (22.05.2008) (446) (81)  
скачать перевод книги Indy In Depth с сайта Анатолия Подгорецкого:
www.podgoretsky.com/Redir.aspx?id=134&DownloadFile=~/ftp/Docs/Delphi/Podgoretsky/IndyInDepth.doc
www.podgoretsky.com/Redir.aspx?id=135&DownloadFile=~/ftp/Docs/Delphi/Podgoretsky/IndyInDepth.pdf


 
Anatoly Podgoretsky ©   (2009-05-08 10:37) [15]

> Игорь Шевченко ©   (08.05.09 01:32)  
> Есть нужда почитать почту, автоматизировано, разбирая содержимое
> писем, желательно в различных кодировках, крайне желательно
> преобразовывать все это к windows-1251, нужда также имеется
> в обработке приаттаченных файлов, точнее в распознавании
> их корректных имен опять же в различных кодировках.

Вообще то это не возможно в общем случае, во первых кодировка может быть не указана, во вторых ее возможно не удастся преобразовать к 1251.
Ну и лучший путь не к 1251 а к Юникод, особенно по именам файлов.

> С Indy не знаком совсем, если оно умеет, просьба ткнуть
> в пример(ы), мои поиски в гугле на тему обработки почтовых
> писем посредством Indy результатов не дали, может, не повезло.

Инди и ICS примерно одинаковы по возможностям, только Инди сложнее в работе и более глюкав.

Вообще то можно делать и ручками, оставив для Indy/ICS грубую работу по приему письма, а разбор делать согласно RFC - ничего там сложного нет. Разборка по вложениям и декодирование. Весьма тупая работа.

Кроме вышеуказаных продуктов, есть еще несколько как универсальных пакетов, так и специализированых (только POP3) более удобно, если задача ограничена.


 
Anatoly Podgoretsky ©   (2009-05-08 10:40) [16]

Забыл сказать, освоение делается на основе демо проектов, поскольку документация хромает, а у Инди еще и справка гигантская = свыше 21000 страниц. А надо не формальная справка, а howto, в какой то мере демо выполняет эту роль, ну и best practice тоже нужен, а этого вообще нет.


 
Anatoly Podgoretsky ©   (2009-05-08 10:42) [17]

Если же выбирать ICS, то он удобнее тем, что пишет в поток (stream), а не List. Ну и не блокирует выполнение, имеет комплект async/sync методов.


 
Игорь Шевченко ©   (2009-05-08 11:13) [18]

Всем спасибо, будем смотреть.

Bat и Outlook и IE не подходят, потому как требуется написать именно простой почтовый клиент, только для чтения писем из ящика и их последующей их, писем, обработки.

Anatoly Podgoretsky ©   (08.05.09 10:37) [15]


> Вообще то это не возможно в общем случае, во первых кодировка
> может быть не указана, во вторых ее возможно не удастся
> преобразовать к 1251.
> Ну и лучший путь не к 1251 а к Юникод, особенно по именам
> файлов.


Не получится в Юникод, надо в Windows-1251. Если письмо приходит с вложением и вложен файл с русским именем, и имя вложения в кодировке koi8, то нужно имя файла преобразовать к Windows 1251.


> Вообще то можно делать и ручками, оставив для Indy/ICS грубую
> работу по приему письма, а разбор делать согласно RFC -
> ничего там сложного нет. Разборка по вложениям и декодирование.
>  Весьма тупая работа.


Вот этим заниматься и не хочется, уже делал нечто подобное с Mail2000, работа оставила крайне скучное впечатление.

Хотелось бы следующего: Есть письмо в ящике, оно оттуда читается, на почтовом сервере удаляется, а на выходе получается объект со свойствами:
тема, тело письма, список вложений.


 
Anatoly Podgoretsky ©   (2009-05-08 11:23) [19]

> Игорь Шевченко  (08.05.2009 11:13:18)  [18]

> Не получится в Юникод, надо в Windows-1251. Если письмо приходит с вложением и вложен файл с русским именем, и имя вложения в кодировке koi8, то нужно имя файла преобразовать к Windows 1251.

Почему? У тебя что Виндовс 9х?

> Хотелось бы следующего: Есть письмо в ящике, оно оттуда читается, на почтовом сервере удаляется, а на выходе получается объект со свойствами: тема, тело письма, список вложений.

Практически любая библиотека позволяет сделать это, разделить на части. Только все равно по списку вложений, делай Юникод, а преобразование в 1251 для списка Дельфи сделает автоматом. Касательно темы и тела, я уже написал, что автоматом в общем случае это не решается - может не быть указания кодировки, или указана неверная кодировка и тогда получаются различного рода крякозябры. И соответственно совет, кроме разделения на части - храни и исходное значения, поскольку в случае неверного перекодирования можно будет эти письма обработать вручную, независимо указать кодировку для заголовка и для тела письма.


 
Игорь Шевченко ©   (2009-05-08 11:30) [20]

Anatoly Podgoretsky ©   (08.05.09 11:23) [19]


> Почему? У тебя что Виндовс 9х?


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

Кроме того, если приходит письмо с именем вложенного файла в koi8, то преобразовывать имя файла из koi-8 в юникод мне кажется нецелесообразным.

Что касается неуказанной/нераспозанной кодировки, то письмо будет послано отправителю с указанием послать еще раз, в понятной кодировке.

Задача собственно в модернизации существующего почтового робота.


 
Anatoly Podgoretsky ©   (2009-05-08 11:45) [21]

> Игорь Шевченко  (08.05.2009 11:30:20)  [20]

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

Кроме того ты видимо пропустил замечание, что кодировка может быть указана, но неверна. Но условие "то письмо будет послано отправителю с указанием послать еще раз" может разрешить эту коллизию.

Это кстати советы/наблюдения по долговременной работе с письмами, что только не приходит, даже Юникод не помогает, а иногда и вредит, с его желанием преобразовать недопустимые символы в одинаковые по написанию, но английские, для не Юникод клиентов, например для OE.

И еще раз насчет базы, что несколько баз, или все таки обработка централизована? Не интересует какая ОС у клиента, а только какая ОС в центре обработки.


 
Anatoly Podgoretsky ©   (2009-05-08 11:51) [22]

Кстати кроме указаных библиотек, посмотри еще на другой универсальный пакет - Synapse, работает по принципу Инди, только расчитан на програмную обработку, по идеологие без ГУИ


 
Игорь Шевченко ©   (2009-05-08 12:21) [23]

Anatoly Podgoretsky ©   (08.05.09 11:45) [21]

Робот это почтовый :) Принимает письма, разбирает, на то, что понимает, реагирует, пишет в базу и т.п. Базу менять нельзя, установлен может быть на любой ОС.



Страницы: 1 вся ветка

Текущий архив: 2009.07.12;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.011 c
15-1242246604
Юрий
2009-05-14 00:30
2009.07.12
С днем рождения ! 14 мая 2009 четверг


2-1242899868
Int23
2009-05-21 13:57
2009.07.12
Как скопировать содержимая TBitmap в Pointer


15-1241808946
TUser
2009-05-08 22:55
2009.07.12
Играем в ассемблер


15-1242186290
vajo
2009-05-13 07:44
2009.07.12
Насколько должны быть одинакова CPU на 2хпроц-й М/B


15-1242287623
Jolik
2009-05-14 11:53
2009.07.12
Работа: настроить сервер SourceSafe и интегрировать с Delphi