email feladók kigyűjtése

Sziasztok!

Adott egy email fiók, benne sokezer levél.
A feladat: kigyűjteni az olvasatlan levelek feladóinak email címét és egy csv vagy xls fileba exportálni.
Ezt hogy tudnám megcsinálni?

Help?

köszönöm!

PZ

Hozzászólások

IMAPon fersz hozza? Ez esetben fogsz egy szamodra kedves programnyelvet es IMAP libet es lekodolod. Ha maildirkent fersz hozza, akkor meg grep-elhetsz benne.

akkor legyen mondjuk ruby


require 'net/imap'
require 'csv'

IMAP_HOST = 'imap.gmail.com'
IMAP_PORT = 993
IMAP_SSL  = true
IMAP_USER = 'user@gmail.com'
IMAP_PASS = 'password'
FOLDERS = [ 'INBOX' ]

imap = Net::IMAP.new(IMAP_HOST, IMAP_PORT, IMAP_SSL)
imap.login(IMAP_USER, IMAP_PASS)
senders = Hash.new()
FOLDERS.each do |folder|
  imap.select(folder)
  imap.search(["NOT", "SEEN"]).each do |message_id|
    msg = imap.fetch(message_id,'ENVELOPE')[0].attr['ENVELOPE']
    sender = "#{msg.from[0].mailbox}@#{msg.from[0].host}"
    begin
      senders[sender] += 1
    rescue
      senders[sender] = 1
    end
  end
end
imap.close
CSV.open('senders.csv', 'wb') { |csv| senders.to_a.each { |elem| csv << elem }}

> Adott egy email fiók

Ezt pontosítani kell! Ha saját fájlrendszerben: mbox vagy maildir vagy milyen formátumban? Ha webes levelezőben: POP3, IMAP vagy milyen hozzáférésed van?

szaszi

bármilyen hozzáférésem van ssh, imap, pop, akármi...
centos

Akkor egyszeru. Odamesz, ahol tarolva van, aztan
grep -R From * | uniq -c

(fejbol irtam, szoval nezd meg, mukodik-e, lehet, hoyg nem is From a neve)

Vagy tovabb:

grep -h -R From * | awk -F: '{print $2}'|uniq -c | sort -n

Biztos van egyszerubb meg szebb is, de ez igy elsore egesz turheto.

--
http://www.micros~1

Feltéve ha maildir és nem mbox... vagy valami egész más :D

Ha meg mbox akkor a grep felesleges, az awk bőven jó grep helyett is, csak meg kell kraftolni hozzá a praktikus regexpet.

Plusz ha már kötekszem, akkor a csillaggal is érdemes vigyázni, 24,000 levélnél nekem az ls * lefut, az ls * * már nem. A jelen esetben ez aligha probléma, de nem árt erre is figyelni.

Nem irtam, hogy nem tokeletes megoldas, csak egy otlet, amin el lehet indulni. En legalabbis alt. jobban orulok ennek, mintha szorol szora le lenne irva - ami amugyis a helyzettol fugg.

Courier-IMAP eseten pl. igy van a mappaszerkezet:
ls -1 Maildir
courierimaphieracl
courierimapkeywords
courierimapsubscribed
courierimapuiddb
courierpop3dsizelist
cur
new
tmp

Ha a Maildir-ben adod ki a "grep -R" parancsot, akkor rekurzivan olvassa az olvasott+olvasatlant, ha a "cur" mappaban, akkor csak az olvasottak lesznek. De mas IMAP megvalositas lehet mas is, nem ismerem. Ezert mondom, hogy a fneti csak otlet, lehet rajta finomitani, de mar el lehet indulni valamerre (pl. man grep)

jaigen, igazad van, uniq elott tenyleg kell egy "sort", ezt kihagytam.
Meg a keresesi kriterium is jobb (bar ez sem zarja ki a fw levlet, amikor pl. seamonkey a teljes fejlecet beidezi, tehat min. ket "From:" sor lesz). Szoval lehet ezt finomitani.

--
http://www.micros~1