Newsgroup: it.comp.lang.visual-basic
Titolo: Invio di posta elettronica con MAPI attraverso codice VB

Cerco un aiuto anche in questo ng anche se non è quello specifico
*---------------------------------------------------------------------------
------*
Sto facendo un'applicazione (ACCESS) che tra le varie funzioni che deve
compiere c'è
anche quella di inviare per mail uno o più documenti PDF.
Nel "Sito Comune di Access" ho trovato un esempio che svolge questa
funzione.
Nell'esempio non si specifica nessun mittente, perchè giustamente viene
assunto l'utente che utilizza il programma.
Per mia sfortuna l'applicazione in sviluppo deve essere utilizzata da un
gruppo di utenti e le mails che invieranno dovranno avere lo stesso mittente
(per esempio 
in...@dominio.it
 che una mailbox comune a tutti quegli utenti) a
prescindere dal proprio indirizzo e-mail.
Ho impostato il codice nel seguente modo :
...
...
...
ReDim MAPI_Recip(2) As MapiRecip
'Mittente
        MAPI_Recip(0).Reserved = 0
        MAPI_Recip(0).RecipClass = MAPI_ORIG     (=0)
        MAPI_Recip(0).Name = "@info"
        MAPI_Recip(0).Address = "
in...@dominio.it
"
        MAPI_Recip(0).EIDSize = 0
        MAPI_Recip(0).EntryID = strNull
'Destinatario
        MAPI_Recip(1).Reserved = 0
        MAPI_Recip(1).RecipClass = MAPI_TO      (=1)
        MAPI_Recip(1).Name = "
destin...@altrodominio.it
"
        MAPI_Recip(1).Address = "
destin...@altrodominio.it
"
        MAPI_Recip(1).EIDSize = 0
        MAPI_Recip(1).EntryID = strNull
...
...
...
    MAPI_Message.Subject = sSubject
    MAPI_Message.NoteText = sMessage
    MAPI_Message.RecipCount = 2
    SendMail = MAPISendMail(0&, 0&, MAPI_Message, MAPI_Recip, MAPI_File,
MAPI_LOGON_UI, 0&)
...
...
Purtroppo la DLL mi ritorna l'errore 15 - "Mapi_E_BAD_RecipType" .
Qualcuno può aiutarmi a capire dove sbaglio ?
Grazie
Ciao
Eugenio

[Eugenio] scrisse:
sul sito comune di questo ng (
http://www.it-lang-vb.net/
) puoi trovare il
progetto MailOe, che consente di inviare e-mail, appoggiandosi a outlook
express, selezionando al runtime l'account "mittente" tra quelli configurati
sul pc.
non so dirti se la stessa tecnica è utilizzabile all'interno di access.
--
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

 ha scritto nel messaggio
news:bpl06n$1oao7q$1...@ID-173193.news.uni-berlin.de...

Grazie.
Ho visto l'esempio, ma purtroppo in azienda utilizziamo Outlook come cliente
di Exchange Server 5.5 e quindi è necessario l'utilizzo di MAPI32.

 MAPI32.
se sei in un dominio di exchange server, dovrebbe essere possibile
utilizzare le proprietà user e password dell'oggetto mapisession.


 applicazione, con un indirizzo comune a più utenti.
scusa, continuo a non capire...
se non ricordo male (è un po' che non lo uso), quando apro una sessione con
l'oggetto mapi session, stando sotto ad un server excange, posso
qualificarmi con l'account che preferisco, specificando user e password
prima dell'apertura: ti basterebbe specificare 
imp...@dddd.it
 con relativa
pwd, e le mail che spedirai durante quella sessione avranno quel mittente.


 mailbox di ogni utente della mia rete.
E' esattamente quello che diceva Sergio.
Sei sicuro di sapere come funziona Exchange Server?
Alberto

 senza problemi.
Ho riletto i tuoi post precedenti.
Ho avuto l'impressione che tu utilizzi Exchange Server come semplice POP e
SMTP, a cui i client fanno riferimento (una sorta di buffer in entrata ed in
uscita, diciamo), e che tu non abbia una vera rete Exchange.
Se cosě č, non ti dico che non si puň fare, solamente perchč potrei essere
smentito. Ma, per quanto ne so, con Mapi non si riesce (io non ci sono mai
riuscito) ad impostare un mittente diverso dal predefinito, se non si ha una
vera rete Exchange.
Ciao
Alberto


Se mi puoi indicare qualche sito (Microsoft a parte) che mi spieghi cosa sia
una vera rete Exchange, ti ringrazio fin da ora.
Come ho già detto, non so se Exchange sia configurato bene o male, ma con
questa configurazione di Exchange e attraverso Outlook98 posso fare
tranquillamente l'operazione che ora voglio automatizzare. In sostanza su
ogni pc ho configurato un solo profilo, quello dell'utente che lo utilizza,
e in Exchange Server ho specificato nelle "Permissions" della mailbox comune
e di proprietà dell'amministratore NT, che determinati utenti possono aprire
la mailbox dal proprio Outlook e conseguentemente possono inviare posta con
l'indirizzo della suddetta mailbox (specificando l'alias nel campo "DA", per
intenderci).
Comunque, visto che conosci Exchange, ne approfitto per chiederti qualcosa
in merito alla libreia CDO.DLL (che funziona anche con W98/95) e che a
differenza di MAPI32.DLL  mi consente risolvere il mio problema in modo
semplice.
Purtroppo, a differenza di MAPI32, non riesco a trovare un parametro che mi
consenta di aprire automaticamente il profilo di default residente su un pc
(MAPI utilizza il flag "MAPI_LOGON_UI = &H1"), ma sono obbligato a
selezionarlo specificatamente.
Grazie
Ciao
Eugenio

 mio problema in modo semplice.
Mai usata.
Ciao
Alberto


Grazie.
Nel frattempo ho risolto tutto.
Con CDO ora tutto funziona a meraviglia (questa notte potrň dormire
tranquillamente).
Provala, se avrai occasione.
Ciao
Eugenio