Newsgroup: it.comp.appl.access
Titolo: vba e outlook

salve
 
esiste un forum per vba & outlook
dovrei automatizzare outlook in modo che le mail che arrivino da un determinato indirizzo vengano inoltrate all'indirizzo inserito nella prima riga del messaggio nella data inserita nella seconda riga
 
come posso fare?
 
GRAZIE anticipatamente


prova ad adattare questo codice
 
http://www.ozgrid.com/forum/showthread.php?t=154641
 
 
al posto del filtro per oggetto lo fai per mittente
e al posto di
ThisWorkbook.Sheets("YourSheet").Cells(i, 1).Value = outMail.Body
salvati il valore in una stringa
 
da li si tratta di manipolare la stringa per ricavare i dati che ti servono
 
altrimenti googola :
https://www.google.it/search?q=read+body+mail+from+vba&ie=utf-8&oe=utf-8&client=firefox-b-ab&gfe_rd=cr&ei=Gc6JWfn8DunBXtaYgcgF
 
 
ciao
BFS

riga del messaggio nella data inserita nella seconda riga
 
Anche qui per una panoramica:
https://msdn.microsoft.com/it-it/library/ms268893.aspx
 
 
 
---
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus
 
 

riga del messaggio nella data inserita nella seconda riga
 


riga del messaggio nella data inserita nella seconda riga
 
Pur essendo questo un newsgroup dedicato ad Access, voglio rispondere alla
problematica in quanto le soluzioni VBA per Outlook sono frammentarie su
internet.
 
Le classi principali per manipolare gli oggetti Outlook sono le seguenti:
 
Outlook.Explorer
https://msdn.microsoft.com/en-us/vba/outlook-vba/articles/explorer-object-outlook
 
Outlook.Items
https://msdn.microsoft.com/en-us/vba/outlook-vba/articles/items-object-outlook
 
Outlook.MailItem
https://msdn.microsoft.com/en-us/vba/outlook-vba/articles/mailitem-object-outlook
 
Outlook.Attachment
https://msdn.microsoft.com/en-us/vba/outlook-vba/articles/attachment-object-outlook
 
 
Gia con queste puoi realizzare parecchia automazione.
Nel tuo caso il primo obiettivo e' leggere il testo di una mail.
Una volta definito l'oggetto MailItem puoi accedervi con la proprieta:
 
objEMail.Body
 
Ma ce ne sono altre, leggi pagine su MSDB che ti ho indicato sopra.
 
Di seguito ti riporto un pezzo del sorgente che utilizzo per salvare tutti
gli allegati PDF ed HTML dalle email della cartella Outlook attualmente
attiva.
Togli il superfluo e riadatta il sorgente ai tuoi scopi, serve come base di
partenza:
 
Public Sub AllegatiSalvaCartella()
On Error GoTo Err_AllegatiSalvaCartella
 
    Dim Response As VbMsgBoxResult
    Dim objExplorer As Outlook.Explorer
    Dim objItems As Outlook.Items
    Dim objEMail As Outlook.MailItem
    Dim objAllegato As Outlook.Attachment
    Dim numAllegati As Long
    Dim strAllegato As String
    Dim strErrore As String
 
    'Set objItems =
Application.ActiveExplorer.CurrentFolder.Items.Restrict("[MessageClass] =
'IPM.Note'")
    Set objItems = Application.ActiveExplorer.CurrentFolder.Items
 
    If Dir("C:\Allegati\*.*", vbDirectory) = "" Then
        Response = MsgBox("La cartella C:\Allegati\ non esiste." _
                & vbCr & "Per procedere al salvataggio è necessario creare
la cartella." _
                , vbOKOnly + vbExclamation, "Allegati")
        Exit Sub
    End If
 
    Response = MsgBox("Si procederà a salvare gli allegati PDF e HTML" _
                    & vbCr & "nella cartella : " & "C:\Allegati\" _
                    & vbCr & "Procedere?" _
                    , vbOKCancel + vbInformation, "Allegati")
 
    If Response = vbCancel Then Exit Sub
 
    strErrore = "NO"
    numAllegati = 0
    'strOggetto = ""
    For Each objEMail In objItems
        ' MsgBox objEMail.Body
        If objEMail.Attachments.Count > 0 Then
        'strOggetto = strOggetto & vbCr & objEMail.Subject
        For Each objAllegato In objEMail.Attachments
            strAllegato = objAllegato.FileName
            If Right(strAllegato, 4) = ".pdf" _
            Or Right(strAllegato, 5) = ".html" _
                Then
                numAllegati = numAllegati + 1
                objAllegato.SaveAsFile ("C:\Allegati\" &
objAllegato.FileName)
            End If
        Next
        End If
    Next
 
    Response = MsgBox("Cartella selezionata: " &
Application.ActiveExplorer.CurrentFolder _
            & vbCr & "Cartella salvataggio: " & "C:\Allegati\" _
            & vbCr & "Numero di e-mail: " &
Application.ActiveExplorer.CurrentFolder.Items.Count _
            & vbCr & "Numero di allegati pdf o link: " & numAllegati _
            & vbCr & "Si sono verificati errori di calcolo? " & strErrore _
            & vbCr & "(in caso di errori il calcolo allegati potrebbe essere
inesatto, segnalare anomalia)" _
            , vbInformation + vbOKOnly, "Allegati")
 
Exit_AllegatiSalvaCartella:
    objExplorer = Nothing
    objItems = Nothing
    objEMail = Nothing
    objAllegato = Nothing
Exit Sub
 
Err_AllegatiSalvaCartella:
    strErrore = "SI"
    Resume Next
End Sub 


 come posso fare?
 
Altro esempio di accesso al corpo di un messaggio di posta elettronica.
Legge il testo selezionato con il mouse.
Puo essere facilmente modificato per leggere qualunque riga nel corpo 
dell'email.
N.b.: la gestione dell'errore restituisce un valore di default anziché 
mostrare un messaggio di avvertimento.
 
Function SelezioneLeggi() As String
On Error GoTo Err_SelezioneLeggi
 
    Dim OutApp As Object
    Dim OutMail As Object
    Dim olInsp As Object
    Dim wdDoc As Object
    Dim strText As String
    ' Dim Response As VbMsgBoxResult
 
    Set OutApp = GetObject(, "Outlook.Application")
    Set OutMail = OutApp.ActiveExplorer.Selection.Item(1)
 
    With OutMail
        Set olInsp = .GetInspector
        Set wdDoc = olInsp.WordEditor
        strText = wdDoc.Application.Selection.Range.Text
    End With
 
    If IsNull(strText) Or strText = "" Then
        SelezioneLeggi = "000000000000"
    Else
        SelezioneLeggi = strText
    End If
 
Exit_SelezioneLeggi:
    Set OutMail = Nothing
    Set OutApp = Nothing
    Set olInsp = Nothing
    Set wdDoc = Nothing
    Exit Function
 
Err_SelezioneLeggi:
    ' Response = MsgBox("Errore -  " & Err.Description, vbCritical, 
"Errore")
    SelezioneLeggi = "000000000000"
    Resume Exit_SelezioneLeggi
End Function 
