LINUX.ORG.RU

email parsing банальный вопрос

 


0

1

Здравствуйте,

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

Я в курсе про poplib и email. Смащает низкоуровневость, первым надо в цикле считывать построчно, потом ещё и аккуратно считывать вторым.
Надаюсь что есть какая-то либа которая позволила бы и получть по POP3 и парсить мейлы за не больше чем ~10 строк, а не писать велосипеД.


Ответ на: комментарий от Den0k

Тогда не знаю, пардон, тег не прочитал, забегался.

Hoodoo ★★★★★
()

Смащает низкоуровневость

Есть готовая либа, делающая всё, кроме обработки уже разпарсеного сообщения. Но по имапу. 36 строк, из которых треть добавляет поддержку IDLE, чтобы сервер не дёргать попусту. Низкий уровень, @#$@#$.

DonkeyHot ★★★★★
()

fetchmail -> (mbox или Maildir) -> python + mailbox

Дешевле и сердитее не придумаешь.

baverman ★★★
()
Ответ на: комментарий от DonkeyHot

и... можно ссылку на либу?

То есть если я вместо подобной байды, (которая всего лишь читае сообщение и только готовит его к парсингу):
[code]
import poplib, email
mServer = poplib.POP3('mail.example.com')
mServer.user('user')
mServer.pass_('pass')
#
messagesInfo = mServer.list()[1]
numMessages = len(messagesInfo)
#
emails = []
#for msg in messagesInfo:
for k in range(numMessages):
message = mServer.retr(k+1)[1]
emails.append(message)
#
print '\n'.join(emails[0])
mServer.quit()
[/code]

хочу что-то подобное:

[code]
import simple email lib I dream of :)
mServer = lib.connect('mail.example.com', 'user', 'password', 'protocol')
#
numMessages = mServer.newMessagesCount()
#
message = mServer.getMessage(3)
messageAtt = mServer.getAtt(3)
messageYesterday = mServer.getMessageByDate(date)
#
mServer.disconnect()
[/code]

то если я такую либу напишу, мне скажут спасибо и это не будет велосипедом?

Den0k
() автор топика
Ответ на: комментарий от Den0k

то если я такую либу напишу, мне скажут спасибо и это не будет велосипедом?

Так бы сразу и сказал, что хочешь либу написать, а не задачу решить. Тоже пользительное занятие, вполне.

baverman ★★★
()
Ответ на: комментарий от baverman

неа, мне задачу решить, но после решения будет время и на написание либы, я просто не верю что такого нет!

Den0k
() автор топика
Ответ на: комментарий от Den0k

можно ссылку на либу?

file://~/Devel/procimapd.py :)

если я такую либу напишу, мне скажут спасибо

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

DonkeyHot ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.