Форум: "Прочее";
Текущий архив: 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