Newsgroup: it.comp.appl.access
Titolo: invio mail ad una lista di contatti tramite macro invia oggetto

C'è nessuno che sia in grado di dirmi come si possa inviare una mail tramite 
macro invia oggetto ad una lista di indirizzi E-Mail presenti in un campo 
query?
Grazie
Marzia 

Marzia ha scritto:

Marzia mi pare che l'argomento sia stato aperto in un'altro 3D o
sbaglio...?
Partiamo dal chiarirti che non puoi fare nulla con una MACRO, ma devi
studiarti VBA, questo è il motivo per il quale forse il 3D precedente
è stato interrotto....
Le cose da chiarire inizialmente sono diverse:
1) Che cosa vuoi inviare la Mail...? Intendo con che tecnologia
2) Che impatto deve dare all'utente, deve accorgersene ed interagire
con la Mail da inviare o deve essere una Mail diretta autocomposta...?
3) Devi memorizzare la Mail inviata o non ti serve
4) Gli indirizzi devono essere tutti visibili a tutti o no...?(in
questo caso si usa il BCC o CCN)
5) Ricorda che nessun programma deve inviare mail senza che l'utente ne
sia a conoscenza.
Queste domande sono molto legate in quano condizionano sull'uso del
componente migliore da scegliere...!
Per ora posso suggerirti un Demo che più o meno fà quello che
dici...(forse è un pò complesso
se sei digiuna di VBA, ma ti dà modo per studiarci sopra...)
http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=258
Nel demo il cuore è il modulo di classe, e se impari ad usarlo ti
accorgerai che passargli i dati dalla tua Query sarà semplice...!
Ciao
@Alex

 ha scritto nel messaggio 
news:1164542603.7...@j44g2000cwa.googlegroups.com...
Marzia ha scritto:







http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=258

Ciao
@Alex
Grazie Alessandro delle precisazioni, ora anche il 3D precedente è più 
chiaro.
Ho visto l'esempio che mi proponi, bello complimenti, avrò bisogno di 10 
anni luce per riuscire a fare una cosa del genere da sola :-)
Tornando alla mia domanda Io ho bisogno di una cosa estremamente più 
semplice ma molto, molto di più:
Come spiegato nel 3D precedente utilizzo delle macro (perchè di VBA come 
avrai capito sono totalmente nulla) invia oggetto per inviare messaggi di 
posta ad un indirizzo
presente in un controllo maschera con una cosa del genere 
=[Forms]![MiaMaschera]![MioControllo]
(quindi posso scegliere tra To; Cc;Ccn) per intenderci ho 3 pulsanti 
distinti per 3 macro distinte.
La macro mi permette quindi di aprire automaticamente una finestra nuovo 
messaggio di Outlook Express e di inserire l'indirizzo rispettivamente in 
To, oppure Cc oppure Ccn. Poi aggiungo oggetto e testo da Outlook. L'utente
quindi è perfettamante consapevole di inviare una mail e, copia del 
messaggio rimane naturalmente in posta inviata.
Ora ho bisogno di fare la stessa per inviare la stessa Mail a più indirizzi 
che sono presenti su un campo query opportunamente già filtrata. In questo 
caso la mail dovrà essere inviata a tutti come Ccn. Devo solo passare ad un 
nuovo messaggio di Outlook un elenco di indirizzi presenti su query. Forse 
questo da macro si può fare? E se no il codice che mi hai passato nel 3D 
precedente doveva servire proprio a questo vero? Recuperare tutti i dati
della query per poi passarli ad un programma di posta. Ma come per il mio 
caso?
Ciao
Marzia

Marzia ha scritto:

I codice che ti ho scritto se non ricordo male cicla il Recordset,
quello che devi fare è comporre adeguatamente la stringa con la
sequenza dei destinatari con il segno di separazione ;
Ora per inviarla con Express purtroppo come ti dicevo devi abbandonare
le macro...!
In questo caso puoi usare ShellExecute che aprirà di Default il
Brovser di Posta...!
Metti il codice seguente in un Modulo:
Private Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal
lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As
String, ByVal nShowCmd As Long) As Long
Const SW_SHOWNORMAL = 1
Public Sub SendMail(frm as Access.Form, _
                    Optional ByVal sTo As String = "Destinatario di
Default", _
                    Optional ByVal CC As String = "", _
                    Optional ByVal BCC As String = "", _
                    Optional ByVal Subject As String = "", _
                    Optional ByVal Body As String = "", _
                    Optional ByVal Attachment As String = "")
Dim sMailThis As String
Dim sSep As String
    sSep = "?"
    sMailThis = "mailto:" & sTo
    If CC <> "" Then
        sMailThis = sMailThis & sSep & "CC=" & CC
        sSep = "&"
    End If
    If BCC <> "" Then
        sMailThis = sMailThis & sSep & "BCC=" & BCC
        sSep = "&"
    End If
    If Subject <> "" Then
        sMailThis = sMailThis & sSep & "Subject=" & Subject
        sSep = "&"
    End If
    If Body <> "" Then
        sMailThis = sMailThis & sSep & "Body=" & Body
        sSep = "&"
    End If
    If Attachment <> "" Then
        sMailThis = sMailThis & sSep & "Attachment=""" & Attachment &
""""
        sSep = "&"
    End If
    If sMailThis <> "mailto:" Then
        Call ShellExecute(frm.hwnd, "open", sMailThis, _
            vbNullString, vbNullString, SW_SHOWNORMAL)
    End If
End Sub
Ora dopo aver composto la stringa con i destinatari(vedi il codice già
postato) la passi alla funzione che ti ho appena passato al parametro
BCC, come primo parametro nella funzione è indicato Destinatario di
Default, puoi mettere il tuo indirizzo in questo campo in modo da
riceverne una copia...!
La funzione dovrai chiamarla così:
  SendMail Me, _
                "
mar...@libero.it
", _
                , _
                "
prim...@libero.it
;
secon...@libero.it
;terzo....",
_
                "Oggetto della Mail" , _
                "Corpo della mail nel caso sia Semiautomatico", _
                "C:\Allegato.Doc"
Ciao
@Alex

[cut]
grazie infinitamente dei tuoi suggerimenti ma dovresti gentilmente 
delucidarmi ancora su alcune cose altrimenti è stato tutto inutile:
1) questa famosa stringa che deve essere composta dal seguente codice:
------------------------------------------------------
Dim strEmailList as string
Dim Rs as DAO.Recordset
Set Rs=CurrentDb.OpenRecordset("MiaQuery")
If Rs.Eof Then Exit Function
Do Until Rs.Eof
   strEmailList=strEmailList & Rs!MioCampo & ";"
   Rs.MoveNext
Loop
If Len(strEmailList)>1 Then
   strEmailList=Mid$(strEmailList,1,Len(strEmailList)-1)
Rs.Close
Set Rs=Nothing
MsgBox "Questo è L'elenco della ListaContatti"  & vbCrLf &
strEmailList
--------------------------------------------------------------
se ho capito bene dovrebbe recuperare tutti i record della query e creare 
una cosa del genere 
indir...@prova.it
; 
indir...@prova.it
; ... giusto? 
Questa stringa resta nella memoria RAM? Tipo funzione "Copia"?
Dove lo devo mettere stò codice in un modulo o routine evento?
2) per passare la stringa alla funzione che hai postato al paramentro Bcc 
come si fa?
3) E' normale che molte righe dell'ultima funzione postata e l'ultima riga 
della funzione sopra quotata risultino di colore rosso all'interno del 
modulo e/o routine?
Scusa se ti copro di domande ma devo approfittare adesso della tua 
gentilezza altrimenti stà cosa non riuscirò a farla mai più.
Per sdebitarmi non posso girarti alcun codice ma posso spedirti il panettone 
per Natale ;-)
Ciao
Marzia

 Marzia
Se hai difficoltà mandami per posta il Demo con la tabella e la query
che vedo di farti funzionare la cosa....(ma solo come ultima spiaggia).
Ciao
@Alex

> [cut]
Volevo solo dire a tutto questo NG che Alessandro Baraldi E' UN GRANDE ed 
onora come tanti altri questo NG con i suoi preziosi consigli ed 
insostituibili aiuti.
Grazie ancora
Marzia 

 Marzia
Ciao Marzia
Daniele 

cidi ha scritto:

Devo promuoverti Manager o Curatore....
;-)
@Alex