Newsgroup: it.comp.lang.visual-basic
Titolo: Funzione per gestire da codice Outlook Express

Ciao ragazzi non è molto che sono nel mondo della programmazione, ma già si
presentano
Ho trovato un sito(
http://www.granite.ab.ca/access/email.htm
 Titolo: Email
using Outlook Express and MAPI) indicato da SitoComune (di Access) dove
spiegava (purtroppo solo parzialmente ) la function per gestire la DLL di MS
Outlook Express (MSOE.DLL). Il Codice allegato inoltre dava la possibilità
di spedire un 'email usando il PGM suddetto.
Fin qui tutto bene ma quando ho provato ad aggiungere righe di codice per
allegare uno o più file ha iniziato a darmi problemi.
Chi tra di voi riesce ad aiutarmi indicandomi dove posso trovare il codice
per la gestione degli allegati su MSOE?
PS
Io ho già provato ad usare il comando DOCMD.SENDOBJECT (di Access 97) ma non
riesce a gestire gli allegati esterni al Database.
Grazie in anticipo
--
  Ciao
Andrea

Non ci sono più problemi.
Sono riuscito a trovare il Codice (e a perfezionarlo) per far partire un
'email e relativi allegati utilizzando Outlook Express.
--
  Ciao
Andrea

 ha scritto nel messaggio
news:arm0n3$gfr$1...@lacerta.tiscalinet.it...

Anche gli allegati?
Mi posti il codice per favore?
ciao,
AEOM

 'email e relativi allegati utilizzando Outlook Express.
Dove hai trovato quel codice?
Io avrei un altro problema: generare a codice contatti nella Rubrica di
Outlook Express.

 Outlook Express.
da me c'e' una dll russa per gestire la rubrica via vb.
l'ho messa insieme a un esempio di codice dao.
--
ciao, j.
www.sundaysw.com

 
www.sundaysw.com
In che sezione di preciso?
Grazie per l'aiuto.

 ha scritto


 ha scritto nel messaggio
news:aroi3v$kmpu4$1...@ID-51318.news.dfncis.de...

Scusa se insisto, mi puoi postare il codice per creare una mail con allegati
con OE?
grazie,
AEOM

 AEOM
scusa, avevo visto male le righe che citavo.
con allegati, da oe non ce l'ho mai cavata.
sul sito comune c'e' un esempio smtp, non mi ricordo se prevede
allegati.
ciao, j.

 allegati.
Abbiate pazienza, non ho capito: cosa significa _da OE_ ?
Da VB si può creare una mail con uno o più allegati con MAPI, ma credo che
non sia questo il problema.

 non sia questo il problema.
che se uso shellexecute "mailto", riesco a dare ad outlook
destinatario, soggetto e testo, ma non allegati.
ciao, j.

 destinatario, soggetto e testo, ma non allegati.
Ah, ok.

 ha scritto nel messaggio
news:aru4p3$lqt6i$1...@ID-51318.news.dfncis.de...

Non ho mai trovato nessuno che sapipa come farlo
perň ho visto uno scanner che tramite il software creava una mail OE con in
allegato la scansione
mistero su come faccia.
AEOM

 mistero su come faccia.
perdonate la mia "tuderezza" (non è un errore di stampa, solo un neologismo,
dal significato, spero, evidente), non ho capito la difficoltà.
tramite il controllo mapi è possibile "fare" un messaggio completo di
allegati, spedendolo con una certa proprietà, che non ricordo, il
messsaggio, prima di essere spedito, viene visualizzato per ricevere la
conferma (e le eventuali modifiche) dell'operatore.... Se non ho capito male
questo sarebbe il comportamento desiderato.... Se ho capito male cazziatemi
pure
Salutoni
Sergio

 completo di allegati,
Era il mio stesso dubbio (vedi poco sopra) e J ha risposto che "Non ci si
riesce usando la ShellExecute", ovvero chiamando direttamente OE passandogli
dei parametri, tutti possibili, tranne gli allegati, appunto.
Resta la mia (e tua) perplessità: Se la ShellExecute viene chiamata da VB,
perchè non fare tutto da VB+MAPI?

 ha scritto

1. rispetto degli usi locali. se shellexec mailto va, vuol dire che
l'indigeno un client se l'e' configurato. e io non costruisco sui
cimiteri indiani.
2. economia. se un client di posta c'e', non improvvisiamone un altro.
3. pigrizia. la shellexec e' una riga. quello che dite voi di piu'
senz'altro.
j.lazy
4. testardaggine. mi fa incacchiare che tutto il resto si riesce e
l'allegato no :)

 l'allegato no :)
Probabilmente č cosě "by design" ;-)
Salutoni
Sergio

 Probabilmente è così "by design" ;-)
trad. it. "volutamente" ?
potrebbe essere una spiegazione.
cioe' quello che in win funziona e' del tutto involontario.

 riesce e l'allegato no :)
http://ftp.ics.uci.edu/pub/ietf/uri/rfc2368.txt
Ciao.
--
BSD is for UNIX-lovers -- linux is for Windows-haters.

 cioe' quello che in win funziona e' del tutto involontario.
LOL
ciao
ugo


Subject: Re: sending mail from vb
Date: Fri, 25 Feb 2000 01:37:41 +0100
On effetti c'è un errore sul codice nel sito, e il parametro
attachment non è supportato. Stiamo per aggiornare il tip in
questione.
--
pero' non de-mordo :)
ciao, j.

Per trovare il Codice sono partito da questo sito
http://www.granite.ab.ca/access/email.htm
e dopo svariate ricerche sono riuscito a trovare un'email di un tipo
americano (?!??!) che spiegava parte della soluzione.
Dopo varie prove sono riuscito a far partire un'email da Access con Outlook
Express con tanto di allegati (un numero imprecisato).
--
  Ciao
Andrea

Ho inviato il Codice (modulo e Codice) al WebMaster del SitoComune di Access
se lo pubblicano lo potrete trovare sotto la voce GENERAL
--
  Ciao
Andrea

Il Sito Comune non mi ha dato ancora una risposta per cui ho deciso di
inviarlo personalmente nel NewsGroup
Spero che vi possa essere utile
Le uniche cose che non sono riuscito a determinare sono :
1)  La possibilità di controllare  l'Email prima di spedirla (attualmente
parte subito)
2)  La possibilità di inserire l'account desiderato (attualmente per chi ha
più di un account prende il predefinito)
Qualsiasi miglioramento è ben accetto.
Collegare ad un pulsante o altro il seguente codice:
Dim MSGX, OBJX As Variant
Dim aTO(0 To 0) As String
Dim aCC(0 To 0) As String
Dim aBCC(0 To 0) As String
Dim aFiles(0 To 2) As String
'Assicurarsi che i files esistono veramente altrimenti non parte
        aFiles(0) = "C:\EMAIL\PIPPO.ZIP"
        aFiles(1) = "C:\EMAIL\PAPERINO.txt"
        aFiles(2) = "C:\DOC\PLUTO.PDF"
        aTO(0) = "
pi...@pluto.it
"
        aCC(0) = "
pape...@pluto.it
"
        aBCC(0) = "
topo...@pluto.it
"
        OBJX = "Invio Email e Allegati con Outlook Express"
        MSGX = "Finalmente ci sono riuscito"
        Invia_MSOE aTO, aCC, aBCC, OBJX, MSGX, aFiles
in un modulo inserire quest'altro codice:
Option Compare Database
Option Explicit
Private Type MAPIRecip
    Reserved As Long
    RecipClass As Long
    Name As String
    Address As String
    EIDSize As Long
    EntryID As String
End Type
Private Type MAPIFileTag
    Reserved As Long
    TagLength As Long
    Tag() As Byte
    EncodingLength As Long
    Encoding() As Byte
End Type
Private Type MAPIFile
    Reserved As Long
    Flags As Long
    Position As Long
    PathName As String
    FileName As String
    FileType As Long
End Type
Private Type MAPIMessage
    Reserved As Long
    Subject As String
    NoteText As String
    MessageType As String
    DateReceived As String
    ConversationID As String
    Originator As Long
    Flags As Long
    RecipCount As Long
    Recipients As Long
    FileCount As Long
    Files As Long
End Type
'inserirel'esatto percorso del file  msoe.dll altrimenti non funziona
Public Declare Function MAPISendMail Lib "c:\programmi\outlook
express\msoe.dll" (ByVal Session As Long, ByVal UIParam As Long, ByRef
message As MAPIMessage, ByVal Flags As Long, ByVal Reserved As Long) As Long
Private Const MAPI_E_NO_LIBRARY = 999
Private Const MAPI_E_INVALID_PARAMETER = 998
Private Const MAPI_ORIG = 0
Private Const MAPI_TO = 1
Private Const MAPI_CC = 2
Private Const MAPI_BCC = 3
Private Const MAPI_UNREAD = 1
Private Const MAPI_RECEIPT_REQUESTED = 2
Private Const MAPI_SENT = 4
Private Const MAPI_LOGON_UI = &H1
Private Const MAPI_NEW_SESSION = &H2
Private Const MAPI_DIALOG = &H8
Private Const MAPI_UNREAD_ONLY = &H20
Private Const MAPI_ENVELOPE_ONLY = &H40
Private Const MAPI_PEEK = &H80
Private Const MAPI_GUARANTEE_FIFO = &H100
Private Const MAPI_BODY_AS_FILE = &H200
Private Const MAPI_AB_NOMODIFY = &H400
Private Const MAPI_SUPPRESS_ATTAch = &H800
Private Const MAPI_FORCE_DOWNLOAD = &H1000
Private Const MAPI_OLE = &H1
Private Const MAPI_OLE_STATIC = &H2
Dim mAf() As MAPIFile
Dim mAr() As MAPIRecip
Dim lAr As Long
Dim lAf As Long
Dim mM As MAPIMessage
Dim aErrors(0 To 26) As String
Private Sub Class_Initialize()
    aErrors(0) = "Success"
    aErrors(1) = "User Abort"
    aErrors(2) = "Failure"
    aErrors(3) = "LogIn Failure"
    aErrors(4) = "Disk Full"
    aErrors(5) = "Insufficient Memory"
    aErrors(6) = "Block Too Small"
    aErrors(8) = "Too Many Sessions"
    aErrors(9) = "Too Many Files"
    aErrors(10) = "Too Many Recipients"
    aErrors(11) = "Attachment No Found"
    aErrors(12) = "Attachment Open Failure"
    aErrors(13) = "Attachment Write Failure"
    aErrors(14) = "Unknown Recipient"
    aErrors(15) = "Bad Recipient"
    aErrors(16) = "No Messages"
    aErrors(17) = "Invalid Message"
    aErrors(18) = "Text Too Large"
    aErrors(19) = "Invalid Session"
    aErrors(20) = "Type Not Suppported"
    aErrors(21) = "Ambiguous Recipient"
    aErrors(22) = "Message in Use"
    aErrors(23) = "Network Failure"
    aErrors(24) = "Invalid Edit Fields"
    aErrors(25) = "Invalid Recipient"
    aErrors(26) = "Not Supported"
End Sub
Public Sub Azzera_Email()
lAr = 0
lAf = 0
End Sub
Public Sub BCCAddressAdd(ByVal strAddress As String)
    RecipientAdd MAPI_BCC, , strAddress
End Sub
Public Sub BCCAdd(ByVal strName As String, ByVal strAddress As String)
    RecipientAdd MAPI_BCC, strName
End Sub
Public Sub BCCNameAdd(ByVal strName As String)
    RecipientAdd MAPI_BCC, strName, strAddress
End Sub
Public Sub CCAddressAdd(ByVal strAddress As String)
    RecipientAdd MAPI_CC, , strAddress
End Sub
Public Sub CCNameAdd(ByVal strName As String)
    RecipientAdd MAPI_CC, strName
End Sub
Public Sub MessageIs1(ByVal strNoteText As String)
    mM.NoteText = strNoteText
End Sub
Public Sub SubjectIs1(ByVal strSubject As String)
    mM.Subject = strSubject
End Sub
Public Sub ToAddressAdd(ByVal strAddress As String)
    RecipientAdd MAPI_TO, , strAddress
End Sub
Public Sub ToNameAdd(ByVal strName As String)
    RecipientAdd MAPI_TO, strName
End Sub
Public Sub FileAdd(ByVal strPathName As String)
    Dim F As MAPIFile
    With F
        .PathName = StrConv(strPathName, vbFromUnicode)
    End With
    ReDim Preserve mAf(lAf)
    mAf(lAf) = F
    lAf = lAf + 1
End Sub
Public Sub Send1()
    Dim r As Long
    With mM
        If lAf > 0 Then
            .FileCount = lAf
            .Files = VarPtr(mAf(0))
        End If
        If lAr > 0 Then
            .RecipCount = lAr
            .Recipients = VarPtr(mAr(0))
            r = MAPISendMail(0, 0, mM, 0, 0)
            If r <> 0 Then
                If aErrors(r) = "" Then
                    MsgBox " Email non creata "
                Else
                    MsgBox aErrors(r) & " - Email non creata"
                End If
            Else
            End If
        End If
    End With
End Sub
Public Sub RecipientAdd(ByVal lngType As Long, Optional ByVal strName As
String, Optional ByVal strAddress As String)
    Dim r As MAPIRecip
    r.RecipClass = lngType
    If strName <> "" Then r.Name = StrConv(strName, vbFromUnicode)
    If strAddress <> "" Then r.Address = StrConv(strAddress, vbFromUnicode)
    ReDim Preserve mAr(lAr)
    mAr(lAr) = r
    lAr = lAr + 1
End Sub
Sub Invia_MSOE(TO1 As Variant, CC1 As Variant, BCC1 As Variant, ByVal OGG1
As String, ByVal MSG1 As String, AFIL1 As Variant)
    Dim T1, B1, C1, A1 As Long
'NUOVA TRASMISSIONE
    Azzera_Email
'ACCODA TO
        For T1 = LBound(TO1) To UBound(TO1)
        If TO1(T1) <> "" Then
            ToAddressAdd TO1(T1)
        Else
            MsgBox "MANCA IL DESTINATARIO - CHIUDO"
        Exit Sub
        End If
        Next T1
'ACCODA CC
        For C1 = LBound(CC1) To UBound(CC1)
        If CC1(C1) <> "" Then
            CCAddressAdd CC1(C1)
        Else
        End If
        Next C1
'ACCODA BCC
        For B1 = LBound(BCC1) To UBound(BCC1)
        If BCC1(B1) <> "" Then
            BCCAddressAdd BCC1(B1)
        Else
        End If
        Next B1
'INSERISCI TESTO MESSAGGIO
    MessageIs1 MSG1
'INSERISCI OGGETTO MESSAGGIO
    SubjectIs1 OGG1
'ACCODA ALLEGATI
    For A1 = LBound(AFIL1) To UBound(AFIL1)
    If AFIL1(A1) <> "" Then
        FileAdd AFIL1(A1)
    Else
    End If
    Next A1
'INVIA
    Send1
End Sub
--
  Ciao
Andrea

 inviarlo personalmente nel NewsGroup
Grazie, ma tu l'avevi mandato al SC di Access, no?!
Di colpe questo NG ne ha sicuramente un tot, ma non questa. ;-))
http://makeashorterlink.com/?R43523BF2
Questi sono i problemi che nascono dall'inviare lo stesso post a più
destinatari.

 inviarlo personalmente nel NewsGroup
Strano, perchè l'attuale WM è piuttosto solerte.
Comunque Lupo ha posto l'attenzione su questo post.
Qualcuno si farà sentire, o magari chiedi tu stesso informazioni al WM.
Ciao

 Strano, perchč l'attuale WM č piuttosto solerte.
Come non detto: anche io sono piuttosto solerte a dire cretinate :PPP
Ciao

 Come non detto: anche io sono piuttosto solerte a dire cretinate :PPP
Perchè mai? Anch'io ero sorpreso (conoscendo il nostro WM), ma The FOG ce
l'aveva con il SC di Access, non col nostro. L'equivoco è nato dal fatto che
ha scritto là e anche qui.
Lascio volutamente il doppio destinatario.

 wrote:
Newsgroups: it.comp.appl.access,it.comp.lang.visual-basic
Evitiamo i cross-post, per favore, specie se sono lunghi 274 righe.
-- 
ciao, hal