Newsgroup: it.comp.lang.visual-basic
Titolo: VB6 e MAPI control 6.0 (SP3)

Tempo fa, scopiazzanto qua e la, sono riuscito
a completare la mia procedura per l'invio di
documenti per email (vedi routine in fondo).
Con Outlook express funziona che � un piacere.
L'altro giorno un mio cliente che ha installato
Microsoft Outlook ha constatato che la
procedura non funzionava.
Sembrava partire bene:
Un programma esterno sta tentando .....
Consenti/non consenti ?
Anche dopo aver acconsentito il messaggio
non veniva inviato.
Entrando in Outlook si poteva constatare
che il messaggio era stato creato ma veniva
poi segnalato un errore come se l'indirizzo
email fosse stato errato.
....spero riusciate a capire anche se non mi
sono spiegato bene.
A questo punto mi viene spontanea una domanda;
la mia procedura funziona solo con Outlook express?
Io non posso fare prove perch� tutti i miei clienti
ed amici hanno installato quello.
Attendo lumi da chi ne sa pi� di me.
Grazie e saluti.
Sauro
...................
Private Sub cmdSend_Click()
Dim Elenco() As String
Dim E As Integer
On Error GoTo SendErrorMailError
' Sign on to the mail system.
mpsErrorMail.UserName = TxtUser.Text
mpsErrorMail.PassWord = TxtPassWord.Text
mpsErrorMail.SignOn
' Send the message.
mpmErrorMail.SessionID = mpsErrorMail.SessionID
mpmErrorMail.Compose
mpmErrorMail.RecipDisplayName = TxtToName.Text
mpmErrorMail.RecipAddress = TxtToAddress.Text
mpmErrorMail.AddressResolveUI = False
mpmErrorMail.MsgSubject = TxtSubject.Text
mpmErrorMail.MsgNoteText = txtBody.Text
If TxtAllegato.Text <> "" Then
If InStr(TxtAllegato.Text, ";") > 0 Then
Elenco = Split(TxtAllegato.Text, ";")
mpmErrorMail.AttachmentPathName = Elenco(0)
For E = 1 To UBound(Elenco)
mpmErrorMail.AttachmentIndex = E
mpmErrorMail.AttachmentPathName = Elenco(E)
Next E
Else
mpmErrorMail.AttachmentPathName = TxtAllegato.Text
End If
End If
mpmErrorMail.Send False
' Sign off of the mail system.
mpsErrorMail.SignOff
Exit Sub
SendErrorMailError:
' There was an error sending the mail.
' Just present the message.
MsgBox "Errore " & Format$(Err.Number) & _
" nell'invio Email." & vbCrLf & _
Err.Description
Exit Sub
End Sub

 la mia procedura funziona solo con Outlook express?
Non l'ho letta, ma dopo un 2/3 tentavi del collega per inviare email con
allegato da vb6 che funzionasse a tutti i clienti, alla fine ho preso un
esempio banale in .NET con la express, e da riga di comando invio le email.
Nessun problema con i clienti che ne avevano.

Andrea ha scritto:

Scusa Andrea ma non ho capito il senso della tua
risposta.
Con la express non ho problemi neanche io.
Comunque io ho VB6 e non .NET ed avrei bisogno
di una routine che possa essere inglobata nel mio
programma perch� deve anche leggere dei dati
sul database con delle Sub di VB6.
Pensavo che la MAPI funzionasse cos�:
1) Entra in azione ricevendo un certo numero di
    parametri (indirezzo, testo, ecc.)
2) Conoscendo la procedura di default residente
    sul PC per l'invio di email (express o altre), la
    attiva passandogli i parametri.
3) E' poi la procedura di invio email che completa
    l'operazione e l'invio effettivo (la express per
    esempio crea una email inviata)
Come dicevo con la express non ho problemi.
Ne ho avuti con Microsoft Outlook senza capire
in quale punto � il problema.
Forse i parametri sono diversi o forse, pi� semplicemente,
non permette un invio "dall'esterno" ho forse ancora deve
essere abilitato in qualche modo.
Grazie comunque.
Ciao, Sauro 

avendo più o meno affrontato problemi analoghi,
sono giunto alla conclusione che:
MAPI è ok solo con OutLook Express
altrimenti meglio lavorare direttamente con SMTP  via Winsock..

 altrimenti meglio lavorare direttamente con SMTP  via Winsock..
Concordo, questo codice ne � un esempio funzionante alla grande:
http://www.freevbcode.com/ShowCode.Asp?ID=109
(Usa le API di wsock32)
Bye
Raf

Ne prendo atto.
Grazie.
Seguir� il consiglio di Raf
Saluti, Sauro 

Grazie Raf
Seguir� il tuo consiglio.
Saluti, Sauro
