Con il frammento di codice appresso riportato invio, agli n destinatari di
una tabella, una mail con un allegato.
Mi occorre la vostra collaborazione e vi chiedo:
1) esiste un parametro per inviare la mail non subito, ma in differita
(specificando data e ora di invio nel parametro) ?
2) vorrei far partire la mail da una casella collettiva (con più nominativi
abilitati) p.es. "Controllo_ acqu...@azienda.it" e non dal mio personale
indirizzo di posta "nomina...@azienda.it" (che è comunque uno dei
nominativi abilitati alla casella collettiva): esiste la possibilita di
indicare tale circostanza ? Per esempio una indicazione del tipo <<
.from = "Controllo...@azienda.it" >> da inserire all'interno del
codice ?
Ho cercato dappertutto ma non sono riuscito a trovare indicazioni o esempi
che facessero al mio caso.
Utilizzo Access e Outlook 2003
Vi ringrazio fin da adesso per la collaborazione.
Ciao.
With OutMail
.To = destinatario
.CC = ""
.BCC = ""
.Subject = OggettoMail
.body = TestoMail
.Attachments.Add ("C:\Percprso\nomefile.xls")
.Importance = olImportanceHigh
.MsgReceiptRequested = True
.Send
End With
Prova così:
===================================
With NewMail
.To = "cmp...@gmail.com"
.CC = "cmp...@gmail.com; brun...@libero.it"
.BCC = "cmp...@gmail.com; brun...@libero.it"
.Subject = "Mailing from Outlook Code"
.Importance = olImportanceHigh
.ReadReceiptRequested = True
.DeferredDeliveryTime = #9/12/2010 11:52:00 AM#
.SendUsingAccount = Session.Accounts("bruno.c...@tin.it")
.Body = S
For i = 1 To 3
.Attachments.Add AttachmentArray(i)
Next
.Send
End With
==================================
Testato con Outlook 2010 ma dovrebbe andare anche col 2003,
magari cambiando opportunamente qualche nome di proprietà
di NewMail.
Attenzione alla data che deve essere nel formato "mm/dd/yyyy hh:nn:ss"
Bruno
Ho verificato la routine con l'inserimento dei due comandi che mi hai
indicato: sto lavorando però fuori rete non essendo adesso in ufficio.
I risultati:
1) il <<.DeferredDeliveryTime .... >> mi pare perfetto. Dalle opzioni
della mail che invio (che per quanto detto sopra mi rimane per ora nella
casella di Posta in uscita) vedo che sono state correttamente avvalorati la
data e l'ora nella parte "Non recapitare prima di";
2) il comando <<.SendUsingAccount =
Session.Accounts(Nomina...@azienda.it)>> non capisco se viene letto, in
quanto nel campo "DA ..." della mail tale indicazione non viene riportata.
C'è un sistema per fare comparire il mittente, inserito per come sopra, nel
campo DA ?
Grazie ancora.
Ciao.
"Bruno Campanini" <B...@gmail.com> ha scritto nel messaggio
news:4c8ca340$0$12122$4faf...@reader4.news.tin.it...
> Bruno, intanto grazie mille.
>
> Ho verificato la routine con l'inserimento dei due comandi che mi hai
> indicato: sto lavorando però fuori rete non essendo adesso in ufficio.
> I risultati:
>
> 1) il <<.DeferredDeliveryTime .... >> mi pare perfetto. Dalle opzioni
> della mail che invio (che per quanto detto sopra mi rimane per ora nella
> casella di Posta in uscita) vedo che sono state correttamente avvalorati
> la data e l'ora nella parte "Non recapitare prima di";
Te la puoi anche inviare al tuo stesso account di partenza.
> 2) il comando <<.SendUsingAccount =
> Session.Accounts(Nomina...@azienda.it)>> non capisco se viene letto, in
> quanto nel campo "DA ..." della mail tale indicazione non viene riportata.
> C'è un sistema per fare comparire il mittente, inserito per come sopra,
> nel campo DA ?
.Body = "Mittente: " & .SenderName & VbCrLf & S
Comunque nella posta ricevuta dovrebbero risultare ambedue
senza necessità di ulteriori precisazioni.
SessionAccounts("abc") -> l'account attraverso per mezzo
del quale viene trasmesso il messaggio (R/W)
.SenderName -> il nome del titolare dell'account (R-Only)
In questo momento non posso testare il codice, spero
di averci preso...
Bruno
[...]
> .Body = "Mittente: " & .SenderName & VbCrLf & S
>
> Comunque nella posta ricevuta dovrebbero risultare ambedue
> senza necessità di ulteriori precisazioni.
> SessionAccounts("abc") -> l'account attraverso per mezzo
> del quale viene trasmesso il messaggio (R/W)
>
> .SenderName -> il nome del titolare dell'account (R-Only)
>
> In questo momento non posso testare il codice, spero
> di averci preso...
E invece no!
.Body = "Mittente: " & Session.Accounts("bruno.c...@tin.it").UserName &
vbCrLf & S
Bruno
Non ci sono ancora con l'invio da un account diverso dal mio.
Il frammento di codice che ho modificato con le tue indicazioni è il
seguente:
With OutMail
.To = oRst!destinatario
.CC = ""
.BCC = ""
.Subject = OggettoMail
'.body = TestoMail
.body = "Mittente :" &
Session.Accounts("Ufficio....@azienda.it") & vbCrLf & TestoMail ' KO
non compare alcun testo (non mi fa vedere neanche il contenuto della
variabile TestoMail)
.Attachments.Add ("C:\Percorso\Nomefile.xls")
.Importance = olImportanceHigh 'High importance
.MsgReceiptRequested = True
'.DeferredDeliveryTime = #9/13/2010 9:00:00 AM#
' OK FUNZIONA
'.SendUsingAccount =
Session.Accounts("Ufficio....@azienda.it") ' KO non funziona,
non compare l'account nel campo DA
.Send
End With
Non vorrei però "angustiarti" più di tanto. Già con il "DeferreDeliveryTime"
mi hai risolto la parte più importante !
Comunque ti ringrazio ancora
"Bruno Campanini" <B...@gmail.com> ha scritto nel messaggio
news:4c8cd684$0$12131$4faf...@reader4.news.tin.it...
[...]
> '.SendUsingAccount =
> Session.Accounts("Ufficio....@azienda.it") ' KO non funziona,
> non compare l'account nel campo DA
>
> .Send
>
> End With
>
>
>
> Non vorrei però "angustiarti" più di tanto. Già con il
> "DeferreDeliveryTime" mi hai risolto la parte più importante !
>
> Comunque ti ringrazio ancora
Pare proprio che in Outlook 2003 non sia possibile cambiare
l'account via VBA...
Dovrai rassegnarti a cambiare a mano l'account di default
ovvero ricorrere ad Outlook 2007 | 2010.
Da quelli puoi farlo.
Bruno