Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.07.12;
Скачать: [xml.tar.bz2];

Вниз

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

 
Игорь Шевченко ©   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.004 c
15-1241426831
Student
2009-05-04 12:47
2009.07.12
Контроль версий


2-1242982981
dort12
2009-05-22 13:03
2009.07.12
Проблема с прекреплением attachment


15-1242208823
PEAKTOP
2009-05-13 14:00
2009.07.12
Поддержи Firebird !


2-1242724147
siealex
2009-05-19 13:09
2009.07.12
Отследить цифру в окне стороннего приложения и нажать в нем же


15-1242018388
федот
2009-05-11 09:06
2009.07.12
PCRE и русская локаль





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский