Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

inviare mail in differita con VBA: è possibile ?

178 views
Skip to first unread message

domenico

unread,
Sep 12, 2010, 3:29:19 AM9/12/10
to
Salve a tutti.

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

Bruno Campanini

unread,
Sep 12, 2010, 5:54:08 AM9/12/10
to
"domenico" <dsf...@libero.it> wrote in message
news:jj%io.206919$9f6.4...@twister1.libero.it...

> Salve a tutti.
>
> 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

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

domenico

unread,
Sep 12, 2010, 8:06:49 AM9/12/10
to

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";

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 Campanini

unread,
Sep 12, 2010, 8:43:41 AM9/12/10
to
"domenico" <dsf...@libero.it> wrote in message
news:tn3jo.95516$Ua.2...@twister2.libero.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


Bruno Campanini

unread,
Sep 12, 2010, 9:32:51 AM9/12/10
to
"Bruno Campanini" <brun...@libero.it> wrote in message
news:4c8ccafd$0$12131$4faf...@reader4.news.tin.it...

[...]


> .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

domenico

unread,
Sep 12, 2010, 10:13:30 AM9/12/10
to

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...

Bruno Campanini

unread,
Sep 12, 2010, 3:45:49 PM9/12/10
to
"domenico" <dsf...@libero.it> wrote in message
news:ee5jo.95564$Ua.2...@twister2.libero.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


0 new messages