Newsgroup: it.comp.appl.access
Titolo: salvare allegati da outlook e spostare le mail

ho creato una regola che mi sposta nella cartella FattureAcquisto tutte le mail che contengono una fattura di acquisto
 
dovrei da VBA scorrere le mail che sono contenute nella cartella "FattureAcquisto"
 
salvare gli allegati in una cartella c:\allegati
 
e poi spostare quelle mail in una cartella "FattureImportate" in modo da non averle piu nella cartella "FattureAcquisto"
 
avete qualche esempio?
 
grazie a tutti.


ho trovato questo esempio ma non mi è molto chiaro su come si usa, qualcuno può chiarirmi l'utilizzo?
 
https://forum.html.it/forum/showthread/t-1465423.html
 


ho trovato quest'altro esempio che credo di poter provare
se serve a qualcuno qui sotto il link
 
https://www.iprogrammatori.it/articoli/programmazione/art_vba-outlook-salvare-gli-allegati-delle-e_1385.aspx
 


sto provando a settare la cartella da cui prelevare gli allegati ma mi da questo errore:
 
errore di runtime -
2147221233
 (8004010f)
operazione non riuscita. impossibile trovare un oggetto
qualcuno ne sa qualcosa?
 
nomecartella vale "FattureAcquisto" che è una cartella in outlook
 
***** code ****
 
    Dim OutlookApp As Outlook.Application
    Dim oFolder As Outlook.Folder
 
 
    Set OutlookApp = New Outlook.Application
 
    On Error GoTo Errore
    Set oFolder = OutlookApp.Session.Folders.Item(1).Folders.Item(NomeCartella)
    Set GetFolderPath = oFolder
    Exit Function
 
 
    Set OutlookApp = Nothing
 
 
Errore:
    Set GetFolderPath = Nothing
    Exit Function
 
 


richiesta aiuto
sono quasi arrivato alla soluzione ma ho un problema
il codice qui sotto seleziona la cartella "FattureAcquisto" che si trova sotto la cartella "Posta in arrivo" di outlook, questa cartella contiene 7 mail che hanno come allegato 2 file uno "daticert.xml" e l'altro postacert.eml
 
il problema è che la fattura elettronica reale .xml è allegata all'interno del file postacert.eml 
 
quindi la domanda è: come entrare nel file .eml per salvare gli allegati xml?
riporto qui sotto il codice che sto utilizzando
 
**** code *****
 
    Dim oApp As Outlook.Application
    Dim oNS As NameSpace
    Dim oFolder As Outlook.Folder
    Dim objInbox As MAPIFolder
    Dim objMail As Outlook.MailItem
    Dim objAttachment As Outlook.Attachment
    Dim strFileName As String
    Dim strTargetPath As String
    Dim ObjCartella As Folder
    On Error GoTo Errore
    Dim StrCartella As String
    StrCartella = "FattureAcquisto"
    'StrCartella = InputBox("Scrivere la cartella dalla quale estrapolare gli allegati dalle email.")
    'If Trim(StrCartella) = "" Then
    ' MsgBox "Indicare una cartella nella quale trovare gli allegati. ", vbInformation + vbOKOnly, "Allegati"
    '    Exit Sub
    'End If
    StrTipoAllegato = "msg"
    'Dim StrTipoAllegato As String
    'StrTipoAllegato = InputBox("Indicare il tipo di file (Esempio per i word doc per i file di testo txt.", "SalvaAllegati", "doc")
    'If Trim(StrTipoAllegato) = "" Then
    ' MsgBox "Impossibile continuare, indicare il tipo di file. ", vbInformation + vbOKOnly, "Salva Allegati"
    '    Exit Sub
    'End If
    'Set ObjCartella = GetFolderPath(StrCartella)
    Set oApp = New Outlook.Application
    Set oNS = oApp.GetNamespace("MAPI")
 
    'Set ObjCartella = oNS.Session.Folders.Item(1).Folders.Item(StrCartella)
    Set ObjCartella = oNS.Session.Folders.Item(1).Folders.Item("Posta in arrivo").Folders.Item(StrCartella)
 
 
    If ObjCartella.Items.Count = 0 Then
     MsgBox "Non ci sono email nella cartella indicata. ", vbInformation + vbOKOnly, "Allegati"
        Exit Sub
    End If
    Dim NomeFileDaSalvare As String
    Dim Elementi As Object
    Dim AllegatoTrovato As Attachment
    Dim IConta As Integer
    IConta = 1
    For Each Elementi In ObjCartella.Items
        For Each AllegatoTrovato In Elementi.Attachments
        If Right(AllegatoTrovato.Filename, 3) = StrTipoAllegato Then
             NomeFileDaSalvare = "c:\prova\" & IConta & AllegatoTrovato.Filename
             AllegatoTrovato.SaveAsFile NomeFileDaSalvare
             IConta = IConta + 1
          End If
        Next AllegatoTrovato
    Next Elementi
    Set objInbox = Nothing
    Set objMail = Nothing
    Set objAttachment = Nothing
    Exit Sub
Errore:
    MsgBox ("Si è verificato il seguente errore: " & Err.Description)
 
 
 
 
 
 


sono riuscito a salvare le mail allegate che hanno estensione .msg quindi indicando StrTipoAllegato = "msg"
però poi mi ritrovo nella cartella c:\prova i file .msg e le fatture xml sono allegate all'interno di tali file.
 
spero di essermi spiegato grazie.

 "FattureAcquisto"
Una cosa alla volta...
Quanti file ti arrivano per ogni fattura e quale estensione hanno?
 
Bruno


mi arrivano le mail con una regola in una cartella creata da me in outlook di nome "fattureacquisto" le mail sono file .msg
all'interno se apro il .msg trovo 2 allegati "daticert.xml" e "postacert.eml"
aprendo l'allegato "postacert.eml" ho in allegato 2 file xml
un file xml credo sia relativo alla firma digitale
l'altro è la fattura elettronica che io dovrei estrapolare
 
fattibile da vba?
 
grazie.
 
 

mario rossi has brought this to us :

Non saprei.
Ci sono due cose che non ho mai fatto:
1 - estrarre dal file .msg il file "postacert.eml"
2 - estrarre dal file "postacert.eml" quello dei due file
    .XML ivi contenuti che è relativo alla fattura.
 
Se puoi inviarmi un file .msg contenente i tre sopraddetti
ci provo, diversamente la mia risposta finisce qui.
 
Bruno


ok ci provo ma dove lo mando?


brunocan - CHIOCCIOLA - libero - it
 
Bruno


non riesco ho all'interno dati sensibili non miei
in pratica a chiunque arrivano fatture elettroniche nella pec di outlook ma credo anche in qualsiasi altro client di posta riceve un .msg che all'interno contiene un .xml e un .eml e il .eml a sua volta contiene 2 xml 
un xml della firma digitale e un xml che è la fattura elettronica vera e propria
 
booooo.