Newsgroup: it.comp.appl.access
Titolo: spedire i documenti prodotti via email

Salve a tutti, é possibile spedire via email i documenti prodotti dal mio programma in Access ?

 Salve a tutti, é possibile spedire via email i documenti prodotti dal mio programma in Access ?
 
Documenti prodotti dal tuo programma immagino siano Files...?
Li ZIPPI e puoi inviarli via Mail... allegandoli...?
Ci sono N modi, a seconda degli Impieghi e necessità, da MsOutlook, MAPI, CDO, BLAT, vbSendMail, WInSock...
 
Vedi tu.
 
@Alex

 
 
Se per documenti intendi dei files (pdf, txt, csv, ecc...) puoi spedirli 
via e-mail come allegati
Personalmente ti consiglio di non legarti ad un qualche client di posta 
(Outlook, Live Mail, ecc..) perche' poi arrivera' il momento che 
installi il tuo programma su una postazione che quel client non ce l'ha
Vedi BLAT e' un programma che avvii da riga comando e come parametri in 
ingresso gli puoi dare il server di posta da usare, nome utente, 
password, oggetto, testo, allegati, ecc...
Cosi' ti rendi indipendente da tutto il resto che c'e' gia' installato 
sul pc destinatario

 
 
io nelle mie applicazioni gestisco l'invio delle mail con tre diversi metodi
 
MsOutlook
MAPI (windows live mail, thunderbird, outlook express etc)
CDO (casi disperati come il nuovo mail di windows 10 che non ho capito 
se pilotabile da vba in qualche altro modo)
 
e su ogni postazione di lavoro posso decidere tramite un parametro quale 
usare. Questo perchè posso avere clienti che in un pc hanno Outlook e su 
un altro Thunderbird
 
per ognuno dei tre metodi trovi tutto su google
 
ciao
BFS
 


blat non lo vedo da anni, se non ricordo male non supportava l'invio di 
pec in quanto non permetteva di cambiare porte del smtp e autenticazione
hanno tolto questa limitazione?
 
ciao
BFS


Bel sistema, adesso tocchera' farcelo pure annoi
Un po' di agognata 'pappa pronta' no ehh?
Che dici? Possiamo sperare?
No eh, va beh pasiensa, tocca lavorare
Magari aspettiamo qualche giorno, mosso da profonda compassione umana 
potresti "..faccelo vede', faccelo tocca'.." (el codice)
 
 


ma guarda che non è nulla di che
in fase di caricamento del programma mi leggo un txt che ho in ogni pc 
che contiene tutti i parametri tra cui il client di posta usato e me lo 
memorizzo in una variabile pubblica chiamata "ClientMailPostazione"
 
nelle varie maschere dove invio mail ho una generica funzione:
 
InviaMail(ClientMailPostazione, a, cc, oggetto, testo, allegato, 
formatoCorpo)
 
 
 
 
la funzione InviaMail non è altro che un
 
select case ClientMailPostazione
 
....
 
....
 
 
dove in base al ClientMailPostazione richiamo la funzione vera e propria 
di invio per lo specifico client
 
Dove per outlook uso:
Public Sub InvioMAilMSO(a As String, Oggetto As String, Corpo As String, 
Optional file As Variant)
  On Error Resume Next
  Dim objOU As Object
  Set objOU = CreateObject("outlook.Application")
  Dim objNewMail As Object
  Dim i As Integer
  Dim blnResolveSuccess As Boolean
 
 
  Set objNewMail = objOU.CreateItem(olMailItem)
  With objNewMail
 
 
     If Not IsMissing(file) Then
       .Attachments.Add CStr(file), , "Allegato "
     End If
     .To = a
     .Subject = Oggetto
     .Body = Corpo
 
     .Send 'oppure .display
 
  End With
  Set objNewMail = Nothing
  Set golApp = Nothing
End Sub
 
per mapi uso
 
 
Sub Invia_MSOE(TO1 As String, CC1 As String, BCC1 As String, ByVal OGG1 
As String, ByVal MSG1 As String, AFIL1 As String)
On Error GoTo errore
Dim SendMail As clsMAPISendMail
    Dim lngLoop As Long
    Dim lngResult As Long
    Set SendMail = New clsMAPISendMail
    With SendMail
        .Clear
 
         Call .AddTo("", TO1)
 
        .Subject = OGG1
        .Body = MSG1
    If Nz(Len(AFIL1)) > 0 Then
         Call .FileAdd(AFIL1)
End If
        .SendImmediately = True 'oppure false
        lngResult = .Send
        If lngResult > 0 Then
            MsgBox .MAPIError(lngResult), vbCritical Or vbOKOnly, 
"Errore nell'invio del messaggio"
 
        End If
    End With
    Set SendMail = Nothing
 
Exit Sub
errore:
MsgBox Err.description
 
End Sub
 
 
per cdo uso
 
Sub invioCDO(TO1 As String, toCC As String, OGG1 As String, MSG1 As 
String, AFIL1 As String)
 
 
Set cdomsg = CreateObject("CDO.message")
With cdomsg.Configuration.Fields
.Item("
http://schemas.microsoft.com/cdo/configuration/sendusing
") = 2 
'NTLM method
.Item("
http://schemas.microsoft.com/cdo/configuration/smtpserver
") = 
"
smtp.xxx.com
"
.Item("
http://schemas.microsoft.com/cdo/configuration/smptserverport
") = 587
.Item("
http://schemas.microsoft.com/cdo/configuration/smtpauthenticate
") = 2
.Item("
http://schemas.microsoft.com/cdo/configuration/smtpusessl
") = True
.Item("
http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout
") 
= 60
.Item("
http://schemas.microsoft.com/cdo/configuration/sendusername
") = 
"xxxx"
.Item("
http://schemas.microsoft.com/cdo/configuration/sendpassword
") = 
"xxxx"
.Update
End With
' build email parts
With cdomsg
.To = to1
.From = "xxxxxx"
.Subject = ogg1
.TextBody = msg1
.Send
End With
     Set cdomsg = Nothing
 
end sub
 
 
ciao
 
 
 
 
 


Non svalutare il lavoro, le conoscenze, il tempo, che e' stato profuso 
per ottenere un frammento di codice funzionante che, come in questo 
caso, risolve un problema
Si tratta di un grande valore per chi, come me, non aveva mai affrontato 
il problema pur avendone sentito la necessita'
Smettiamola di chiamarli 'programmini'
Sono evidenze, alcune volte magistrali, dell'ingegno umano
Molte grazie per aver generosamente condiviso