"Gi�" <G...@discussions.microsoft.com> ha scritto nel messaggio
news:190FA553-A4C0-4558...@microsoft.com...
Ciao Gi�,
se non hai un client di posta elettronica sul pc in questione puoi
usare l'oggetto CDO per inviare email, che si appoggia ad un
componente di sistema
ES. di procedura per invio di email:
'Invia email prelevando i dati che servono dalla query nomequery
Public Sub SendEmail(nomequery As String)
On Error GoTo Err_btn_email_Click
Dim rs As Dao.Recordset
Dim mymail As New CDO.Message
Dim objConfig As New CDO.Configuration
Dim Fields
Dim i As Long
Dim qdef As QueryDef
Const cdoSendUsingMethod =
"http://schemas.microsoft.com/cdo/configuration/sendusing"
Const cdoSMTPServer =
"http://schemas.microsoft.com/cdo/configuration/smtpserver"
Const cdoSMTPServerPort =
"http://schemas.microsoft.com/cdo/configuration/smtpserverport"
Const cdoSMTPConnectionTimeout =
"http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"
Const cdoSMTPAuthenticate =
"http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
Const cdoBasic = 1
Const cdoSendUserName =
"http://schemas.microsoft.com/cdo/configuration/sendusername"
Const cdoSendPassword =
"http://schemas.microsoft.com/cdo/configuration/sendpassword"
Set Fields = objConfig.Fields
i = 0
With Fields
.Item(cdoSendUsingMethod) = 2
.Item(cdoSMTPServer) = "smtp.tuodominio.it" 'personalizzare con
l'indirizzo smtp del proprio provider
'.Item(cdoSMTPServer) = "smtp.tiscali.it" 'esempio
.Item(cdoSMTPServerPort) = 25
.Item(cdoSMTPConnectionTimeout) = 60
.Item(cdoSMTPAuthenticate) = 1
.Item(cdoSendUserName) = "in...@tuodominio.it" 'inserire lo username
di accesso alla posta
.Item(cdoSendPassword) = "password" 'inserire la password
.Update
End With
Set mymail.Configuration = objConfig
mymail.Fields.Update
mymail.ReplyTo = "i...@miodominio.it"
mymail.From = "i...@miodominio.it"
mymail.Subject = "Oggetto della mail"
mymail.MDNRequested = False
Set rs = CurrentDb.OpenRecordset(nomequery)
While Not rs.EOF
mymail.HTMLBody = "<html><body style=""FONT-FAMILY: Verdana,
Arial, Helvetica, sans-serif; font-size:12px"">" &
CreaTestoMessaggio(rs) & "</body></html>"
'CreaTestoMessaggio (rs) � una funzione che prende i dati del
recordset e costruisce il messaggio da inviare
mymail.To = rs.Fields("email")
mymail.Send
goOn:
rs.MoveNext
Sleep (3000) 'Attendi un po per non ingolfare l'smtp server
Wend
DoCmd.Close
MsgBox "Invio terminato!"
Exit_btn_email_Click:
Exit Sub
Err_btn_email_Click:
MsgBox Err.Description & " Problemi alla mail: " &
rs.Fields("email")
Resume goOn
End Sub
--
Cinzia [Office Access MVP]
_______________________
www.riolab.org
http://accessdaziacin.spaces.live.com
---------------------------------------->
Grazie
Ciao
"Cinzia" ha scritto:
>
>
>
> "Giò" <G...@discussions.microsoft.com> ha scritto nel messaggio
> news:190FA553-A4C0-4558...@microsoft.com...
> > Buongiorno a tutti, ho la necessita' di inviare un'email da access,
> > ho
> > utilizzato il comando DoCmd.SendObject acSendNoObject, con questo
> > comando ho
> > impostato in automatico i destinatari, l'oggetto e il corpo del
> > messaggio,
> > sul mio pc, ho installato outlook express e non c'e' problema,
> > funziona
> > benissimo, il db pero' deve girare su un pc che non ha nessun client
> > di posta
> > configurato, ma si accede alla posta tramite webmail, per far
> > funzionare le
> > impostazioni su webmail, devo utilizzare sempre DoCmd.SendObject
> > acSendNoObject, oppure si deve fare in altro modo?
> > Spero di essermi spiegata bene
> > Grazie
> > Saluti
> > Gio'
>
> Ciao Giò,
> ..Item(cdoSendUsingMethod) = 2
> ..Item(cdoSMTPServer) = "smtp.tuodominio.it" 'personalizzare con
> l'indirizzo smtp del proprio provider
> '.Item(cdoSMTPServer) = "smtp.tiscali.it" 'esempio
> ..Item(cdoSMTPServerPort) = 25
> ..Item(cdoSMTPConnectionTimeout) = 60
> ..Item(cdoSMTPAuthenticate) = 1
> ..Item(cdoSendUserName) = "in...@tuodominio.it" 'inserire lo username
> di accesso alla posta
> ..Item(cdoSendPassword) = "password" 'inserire la password
> ..Update
> End With
>
> Set mymail.Configuration = objConfig
> mymail.Fields.Update
> mymail.ReplyTo = "i...@miodominio.it"
>
> mymail.From = "i...@miodominio.it"
> mymail.Subject = "Oggetto della mail"
> mymail.MDNRequested = False
>
> Set rs = CurrentDb.OpenRecordset(nomequery)
>
> While Not rs.EOF
>
> mymail.HTMLBody = "<html><body style=""FONT-FAMILY: Verdana,
> Arial, Helvetica, sans-serif; font-size:12px"">" &
> CreaTestoMessaggio(rs) & "</body></html>"
> 'CreaTestoMessaggio (rs) è una funzione che prende i dati del
"Gi�" <G...@discussions.microsoft.com> ha scritto nel messaggio
news:9979AE2A-A2BA-48CA...@microsoft.com...
> questo nuovo metodo, invia l'email direttamente oppure mi permette
> di
> visualizzare l'anteprima? Ti spiego, con il metodo send, prima di
> inviare
> l'email, visualizzao l'anteprima e poi invio manualmente, con il tuo
> metodo
> si puo' fare lo stesso?
>
> Grazie
>
> Ciao
>
>
No, con questo metodo viene inviato immediatamente senza anteprima,
anche perc� senza un client di posta � un po' difficile vedere
l'anteprima.
Potresti eventualmente costruire il testo del messaggio e prima
dell'invio visualizzarlo in una maschera con un controllo Webbrowser.