Newsgroup: it.comp.appl.access
Titolo: [VBA Outlook] Invio e spostamento Mail

Buondì...
Con la funzione sotto gestisco via Automazione l'invio di Mail, che va
a buon fine.
Quello che manca, è il fatto che dopo l'invio(Metodo Send) vorrei
spostare la Mail
in una Cartella di destinazione tramite ( .Move myDestFolder)
A questo punto dovrei creare un'oggetto Folder che punta alla Cartella
personale specifica...
e non fidandomi degli Index(nel caso di rimozione o aggiunte) ho
preferito passare il percorso
relativo e scendere nella Folder... (vedi ciclo For)
All'uscita di quel ciclo teoricamente dovrei avere il riferimento alla
myDestFolder, e così parrebbe essere, visualizzando la valorizzazione
dell'oggetto...!
Sta di fatto che eseguendo il metodo MOVE sulla mail appena inviata mi
restituisce errore...
"Metodo Move dell'oggetto MailItem non riuscito...!"
Presumo sia da attribuire all'esecuzione Sincrona, ma non ne sono
certo, in ogni caso la cosa non mi riesce.
E' possibile impostare la Folder di salvataggio prima dell'invio
eventualmente...?
Suggerimenti alternativi....?
[Codice usato]
Public Function SendMail()
   Const olMailItem = 0
   Dim Ol_App        As Object
   Dim Ol_Item       As Object
   Dim myDestFolder  As Object   'Outlook.MAPIFolder
   Dim objNS         As Object   'Outlook.NameSpace
   Dim colFolders    As Object   'Outlook.Folders
   Dim objFolder     As Object   'Outlook.MAPIFolder
   Dim arrFolders()  As String
   Dim strFolderPath As String
   Dim i             As Long
   Set Ol_App = GetObject(, "Outlook.Application")
   Set Ol_Item = Ol_App.CreateItem(olMailItem)
   strFolderPath = "Cartelle personali\Posta in Arrivo\NOMEDITTA
\PostaInviata"
   strFolderPath = Replace(strFolderPath, "/", "\")
   arrFolders() = Split(strFolderPath, "\")
   Set objNS = Ol_App.GetNamespace("MAPI")
   Set objFolder = objNS.Folders.Item(arrFolders(0))
   If Not objFolder Is Nothing Then
     For i = 1 To UBound(arrFolders)
       Set colFolders = objFolder.Folders
       Set objFolder = Nothing
       Set objFolder = colFolders.Item(arrFolders(i))
       If objFolder Is Nothing Then
         Exit For
       End If
     Next
   End If
   Set myDestFolder = objFolder
   With Ol_Item
      .To = "
ik2...@libero.it
"
      '.CC = ""
      '.BCC = ""
      .subject = "OGGETTO"
      .Body = "CORPO"
      .Attachments.Add "D:\ABB\TEMP\rptSAL.pdf"
      .Save
      .Send
      DoEvents
      .Move myDestFolder
   End With
   Set Ol_Item = Nothing
   Set Ol_App = Nothing
End Function

 ha scritto nel messaggio 
news:1179745932.9...@a26g2000pre.googlegroups.com...
Buondě...
Con la funzione sotto gestisco via Automazione l'invio di Mail, che va
a buon fine.
Quello che manca, č il fatto che dopo l'invio(Metodo Send) vorrei
spostare la Mail
in una Cartella di destinazione tramite ( .Move myDestFolder)
A questo punto dovrei creare un'oggetto Folder che punta alla Cartella
personale specifica...
e non fidandomi degli Index(nel caso di rimozione o aggiunte) ho
preferito passare il percorso
relativo e scendere nella Folder... (vedi ciclo For)
All'uscita di quel ciclo teoricamente dovrei avere il riferimento alla
myDestFolder, e cosě parrebbe essere, visualizzando la valorizzazione
dell'oggetto...!
Sta di fatto che eseguendo il metodo MOVE sulla mail appena inviata mi
restituisce errore...
"Metodo Move dell'oggetto MailItem non riuscito...!"
Presumo sia da attribuire all'esecuzione Sincrona, ma non ne sono
certo, in ogni caso la cosa non mi riesce.
E' possibile impostare la Folder di salvataggio prima dell'invio
eventualmente...?
Suggerimenti alternativi....?
___
Risposta
Ciao
parlando con il mitico Maurizio Borrelli č venuto fuori questo codice
(lascia stare il binding)
Public Sub SendAndMove_test()
Dim objOlApp      As Object
Dim objOlFolder   As Object
Dim objOlMailItem As Object
Set objOlApp = CreateObject("Outlook.Application")
With objOlApp
  With .GetNamespace("MAPI").Folders.Item("Maurizio Borrelli").Folders
    Set objOlFolder = .Item("[_Test]")
  End With
  Set objOlMailItem = objOlApp.CreateItem(olMailItem)
End With
With objOlMailItem
  .To = "
pi...@pippo.it
"
  .Subject = "Test"
  .Body = "Body"
  Set .SaveSentMessageFolder = objOlFolder
  .Send
End With
Set objOlMailItem = Nothing
Set objOlFolder = Nothing
Set objOlApp = Nothing
End Sub
-- 
--
MAssimiliano Amendola
www.accessgroup.it
Cisa - Conferenza Italiana Sviluppatori Access
Segrate (MI), 7-8 giugno 2007

 End Sub
Ciao Massimiliano.
Avevo già provato questa strada perchè effettivamente mi sembrava la
più semplice... ma non sono riuscito a capire perchè la posta mi
rimane in OutBox e non viene spostata nella Cartella selezionata...
Boh...
Bella questa consulenza per conto terzi... ;-) grazie
@Alex

 ha scritto nel messaggio
Bella questa consulenza per conto terzi... ;-) grazie
@Alex
__
Risposta
Lo stavo sentendo per la CISA (a proposito, in qualunque momento ti vuoi 
aggiungere, lo sai che un posto lo trovo sempre per te) e stavo affrontando 
lo stesso problema
(una mailing list per un cliente).
Ciao


 Ciao
Purtroppo stò cercando di automatizzare alcune sequenze o procedure
ufficiali e mi stò un pò perdendo in questi giochetti... di Outlook
Faccio ulteriori prove, per ora mi devo arrangiare ad operare in
Manuale.
Per CISA mi era venuta voglia di passare a salutare, ma ci sono un
paio di problemi che non mi permettono di esserne sicuro.
Vediamo come evolvono alcune cose.....
Ciao
@Alex


Ciao Maurizio.
C'è qualche cosa che non funziona come dovrebbe...
Innanzitutto avevo provato creando una Regola semplie, vale a dire tutti i
messaggi inviati con
Oggetto="XXXX" (esempio) li sposti nella cartella "Personale"
Questo già non funziona, o meglio se applico la Regola alle Cartelle nel
momento in cui la creo funziona
ma per le mail successive .... no.
C'è da dire che nel mio caso Outlook non viene mai chiuso 365gg/anno ma devo
vedere se c'entra qualche cosa...
Oltretutto mi appare il messaggio fastidiosissimo che mi chiede di
certificare e confermare il tentativo di invio
della Mail(perchè potrebbe essere un Virus...) e quì forse capisco il
motivio... in realtà ho aperto un'oggetto
Outlook con i privilegi miei quindi proprio così chiaro non è....
Non ho mai usato Outlook con Automazione quindi è sicuro che io abbia preso
dei granchi.
TNX
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.alessandrobaraldi.it
---------------------------------------------------------------------------