Newsgroup: it.comp.software.mailreader
Titolo: Estrarre indirizzi posta elettronica

Ciao
sto cercando per WinXp, un programma
che trovi e estragga da  file.eml, indirizzi
di posta elettronica.
Vi ringrazio.

 di posta elettronica.
devi lavorarci io non ho tempo adesso ....  metti le tue *.eml in
C:\Documenti\Bozze mail   o modifica il percorso
Il risultato sara' in  C:\E-Mail.Log
'Il target sono i *.eml ( si puo' modificare)
'copia ogni linea con "from:" nel log file.
sDirectory = "C:\Documenti\Bozze mail"
sLogFile = "C:\E-Mail.Log"
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oLogFile = oFSO.OpenTextFile(sLogFile, 8, True, 0)
Set oFolder = oFSO.GetFolder(sDirectory)
For Each oFile In oFolder.Files
  If InStr(UCase(oFile.Name), ".EML") Then
    Set oStream = oFSO.OpenTextFile(oFile.Path, 1)
    Do Until oStream.AtEndOfStream
      sLine = oStream.ReadLine
      If InStr(UCase(sLine),"FROM:") Then
        oLogFile.WriteLine sLine
'Msgbox sLine
      End If
    Loop
  End If
Next
oLogFile.Close
'Copia incolla su notepad e salva con estensione .vbs
'tutti i file (*.*)  poi ci clicchi sopra. (per esempio Test.vbs)
'se ti da' errore disattiva l'antivirus
--
Fosco

ti ringrazio, faccio una prova.
Ho provato, funziona,   ma legge gli indirizzi
tra < > che e il mittente ovvero io, il destinatorio
e una riga sotto, ed e:
To: 
in...@xxxx.com
e possibile leggere questo piuttosto che la riga precedente?
Ciao

>      If InStr(UCase(sLine),"FROM:")
ho cambiato il FROm in To
legge gli indirizzi mail ma anche la linea sottostante.
mi servirebbe che leggesse solo la linea dove compare il To.
Cioč , tutto quello che trova, dopo, il "To: "
Grazie
Ciao

Daniel Net:

Prova cosi :
sDirectory = "C:\Documenti\Bozze"
sLogFile = "C:\E-Mail.Log"
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oLogFile = oFSO.OpenTextFile(sLogFile, 8, True, 0)
Set oFolder = oFSO.GetFolder(sDirectory)
For Each oFile In oFolder.Files
  If InStr(UCase(oFile.Name), ".EML") Then
    Set oStream = oFSO.OpenTextFile(oFile.Path, 1)
    Do Until oStream.AtEndOfStream
      sLine = oStream.ReadLine
    If InStr(UCase(sLine),"TO: ") Then
        oLogFile.WriteLine sLine
'Msgbox sLine
      End If
    Loop
  End If
Next
oLogFile.Close
-- 
Fosco

     If InStr(UCase(sLine),"TO: ") Then
Pero' qui e' il massimo che si puo fare perche'  il
If InStr(UCase(sLine),"TO: ") Then
puo essere anche
In-Reply-To:
o
Inviato:
o
 Oggetto:  al limite prova pure
If InStr(UCase(sLine),"TO: <") Then
--
Fosco


prima compariva anche : Oggetto: bla bla
Grazie
Ciao
Ciao

 ciao.
ti ringrazio, purtroppo queste mail
non sono di OE.Sono di altro client
di posta.Semplici file con estensione.eml
Ma se hai esempi o del codice,  postalo.
Grazie
Ciao

 si possono estrarre gli indirizzi direttamente dai ".dbx"
Quotoloz   oppure anche  con regexp  ma io no ci capisco una cippa
http://www.google.it/search?hl=it&q=wsh%2Bregexp&btnG=Cerca+con+Google&meta=
snip : 
http://fyad.org/tkg5
--
Fosco

 Ma se hai esempi o del codice,  postalo.
Se hai un po di pazienza ... c'e' qualcosa di buono  IMHO
Ma bisogna aspettare l'autorizzazione dell'autore
--
Fosco

 Ma bisogna aspettare l'autorizzazione dell'autore
ecco il codice fatto da Eldorado  ( funziona perfettamente)
Nettilo nella stessa cartella dove hai le  *.eml  il risultato
sara in E-mail.txt
http://www.autoitscript.com/autoit3/
; qui'e ' gia compilato in exe se hai difficolta con il codice  sotto
; 
http://lottosea.netsons.org/Extract.zip
#NoTrayIcon
DIM $i,$w,$Email
   $FF = FileOpen(@ScriptDir &"\E-mail.txt", 2 )
; 2 = overwrite | 1 = append
 $search = FileFindFirstFile("*.eml")
While 1
    $NN = FileFindNextFile($search)
    If @error Then ExitLoop
 $file = FileOpen( $NN, 0 )
 While 1
  $Line=FileReadLine ( $file )
  if @error = -1 then exitloop
  If StringMid($line,1,5)="From:" Then
    $line=StringMid($line,6,StringLen($line))
    $w=StringLen($line)
    $i=0
     while 1
     $i=$i+1
     If StringMid($line,$w,1)=" " Then ExitLoop
     $w=$w-1
     If $w=0 Then ExitLoop
     WEnd
     $Email=StringRight($line,$i)
     $Email = StringReplace ( $Email, "<"  , "")
     $Email = StringReplace ( $Email, ">"  , "")
     $Email = StringReplace ( $Email, " "  , "")
     $w=StringInStr( $Email,"@")
     If $w=0 Then ExitLoop
    FileWriteLine( $FF, $Email )
    ExitLoop
   EndIf
 WEnd
  FileClose($file)
WEnd
 FileClose($FF)
 Exit
;Copia incolla su notepad e salva con estensione .au3
;tutti i file (*.*)  poi ci clicchi sopra. (per esempio Test.au3)
;se ti da' errore disattiva l'antivirus
--
Fosco

ti ringrazio 1000:
Ciao

vi ringrazio per la cortesia.
Lo script funziona benissimo, ma
estrae solo l'indirizzo del mittente, cioè
il mio, e non del destinatario.Ci sara da
spostare o cambiare qualche riga di codice.
il destinatario compare sempre dopo To:
su questa riga, che e sempre la 5à c'è solo
l'indi...@destinatario.it
 e non compare
mai ne tra "", '' o <>
Vi ringrazio di nuovo.
Ciao

 mai ne tra "", '' o <>
Aspetta El Dorado se e quando ha tempo che ti potrebbe
fare una cosa precisa  ... intanto prova questa che legge sempre la 5 riga
se vedi che NON e' giusta cambia il numero qui
$Line=FileReadLine ( $file ,5)
aumetando o diminuendo   per esempio  $Line=FileReadLine ( $file ,6)
#NoTrayIcon
   $FF = FileOpen(@ScriptDir &"\E-mail.txt", 2 )
 $search = FileFindFirstFile("*.eml")
While 1
    $NN = FileFindNextFile($search)
    If @error Then ExitLoop
 $file = FileOpen( $NN, 0 )
 While 1
  $Line=FileReadLine ( $file ,5)
  MsgBox(262144, "", $Line)
  if @error = -1 then exitloop
    ;$Line=$Line+1
     $Email = StringReplace ( $Line, "<"  , "")
     $Email = StringReplace ( $Line, ">"  , "")
     $Email = StringReplace ( $Line, " "  , "")
     $Email = StringReplace ( $Line, Chr(34), "")
    FileWriteLine( $FF, $Line )
    ExitLoop
  ;EndIf
 WEnd
  FileClose($file)
WEnd
 FileClose($FF)
 Exit
--
Fosco

"Daniel Net"

PS :
mi dicono dalla regia che per  per aiutarti a colpo sicuro, bisognerebbe
vedere gli header di una e-mail magari criptando l'e-mail con delle 'xxx'
diversamente si deve procedere x tentativi  e diventa una menata.
--
Fosco

 estrae solo l'indirizzo del mittente
PS :
mi dicono dalla regia che per  per aiutarti a colpo sicuro, bisognerebbe
vedere gli header di una e-mail magari criptando l'e-mail con delle '****'
diversamente si deve procedere per tentativi  e diventa una menata.
--
Fosco


To: 
in...@xxx.com
Subject: ...
Vi ringrazio.
Ciao

 To: 
in...@xxx.com
Prova questo e ringrazia El Dorado se funge
ti crosso su it.aiuto  se c'e' da continuare contina li
#NoTrayIcon
    $FF = FileOpen(@ScriptDir &"\E-mail.txt", 2 ) ; 2 = overwrite | 1 = append
 $search = FileFindFirstFile("*.eml")
While 1
    $NN = FileFindNextFile($search)
    If @error Then ExitLoop
 $file = FileOpen( $NN, 0 )
 While 1
  $Line=FileReadLine ( $file )
  if @error = -1 then exitloop
   If StringMid($line,1,3)="To:" And StringInStr($line,"@")>0 Then
    $w=StringInStr($line,"@")
    $p=$w
    $m=$w
   While 1
    $p=$p+1
If StringMid($line,$p,1)=" " Or StringMid($line,$p,1)=">" Or StringMid($line,$p,1)="" Then ExitLoop
   WEnd
     $Dif1=$p-$w
   While 1
    $m=$m-1
If StringMid($line,$m,1)=" " Or StringMid($line,$m,1)="<" Or StringMid($line,$m,1)="" Then ExitLoop
   WEnd
    $Dif2=$w-$m
    $Email=StringMid($line,$w-$Dif2,$Dif1+$Dif2)
     $Email = StringReplace ( $Email, "<"  , "")
     $Email = StringReplace ( $Email, ">"  , "")
     $Email = StringReplace ( $Email, " "  , "")
     $Email = StringReplace ( $Email, Chr(34), "")
    FileWriteLine( $FF, $Email )
    ExitLoop
  EndIf
 WEnd
  FileClose($file)
WEnd
 FileClose($FF)
 Exit
se hai problemi prova a copiarlo da qui   
http://nopaste.gempai.de/101/
--
Fosco

ok, grazie.
Ciao

 Fosco
adesso funziona.
Copia tutti gli indirizzi email del campo To:
Ho scaricato anche autoscritp e l'ho installato.
Ti chieod un ultima cosa.
C'è un comando per portare tutto minuscolo
una riga scritta in maiuscolo?
Grazie
Ciao

 una riga scritta in maiuscolo?
si ti ho risposto pure di la .... posto pure qui che sissamai
qualcuno fosse interessato adesso o in futuro
http://nopaste.gempai.de/105/
http://fyad.org/tm9m
--
Fosco

"Fosco" <fa...@fake.invalid> ha scritto nel messaggio 
news:fsshtp$q5r$1...@megan.servidellagleba.it...

ti ringrazio di nuovo.
Ciao 

 8)exit
f/up to  it.aiuto
--
Fosco