Newsgroup: it.comp.appl.access
Titolo: Invio Email via MAPI

Ciao a tutti
Se invio una mail (da Access 2003) senza compilare il campo "indirizzo
destinatario" (Es: .RecipAddress = "
ma...@mail.it
") tutto ok
Se invece compilo questo campo prima si apre la solita finestra chiedendo il
consenso: "Un programma sta tentando di accedere..."
Ma se clicco su "Sě" si chiude questa finestra e non succede piů niente.
Ho provato su diversi pc, sempre stesso risultato.
Se avete qualche suggerimento vi ringrazio
Ciao
Luca 

 wrote in
news:4c7b7c5b$
1...@news.x-privat.org
: 

se non metti il destinatario va tutto bene?
O_o
e l'email a chi viene spedita???
-- 
Paolo opg
BE AWARE that this post uses a fake reply-to address
to contact me write to:
janickg ( at ) hotmail ( dot ) com
--

 Paolo opg
Ciao Paolo
Se non metto il destinatario mi si apre la finestra di Outlook senza 
destinatario e lo devo aggiungere a mano
Se metto il destinatario via codice non si apre niente
Ciao
Luca
 

 wrote in message 
news:4c7b7c5b$1...@news.x-privat.org...

Puoi mostrare il codice VBA?
Bruno 

 ha scritto nel messaggio 
news:4c7cca5b$0$18994$4faf...@reader5.news.tin.it...

Ecco il codice:
Public Sub Apertura()
Dim F_Shell As New DinUtility11500.ShellMan
Dim DDD As Destinatario
Dim Chiave As Long
With Me.MAPISession1
    .NewSession = False
    .DownLoadMail = False
    .LogonUI = True ' Non visualizza la finestra di connessione dell'account
    .SignOn
    With Me.MAPIMessages1
        .SessionID = Me.MAPISession1.SessionID
        .Compose
        For Each DDD In El ' Insieme di destinatari
            .RecipIndex = Chiave
            .RecipType = DDD.Tipo
            .RecipAddress = DDD.Email
            .RecipDisplayName = DDD.Nome
            On Error Resume Next
            .ResolveName
            If Err.Number = 32014 Then
                If MsgBox(Err.Description & ":" & vbCrLf & .RecipDisplayName 
& vbCrLf & .RecipAddress & vbCrLf & "Si desidera selezionare l'indirizzo 
dalla rubrica?", 36, "Controllo Rubrica") = 6 Then
                    .Show
                    If Err.Number = 32001 Then ' Cliccato annulla in rubrica
                        'If MsgBox("Inviare il messaggio senza nome con il 
solo indirizzo e-mail?", 36, "Controllo Rubrica") = 6 Then
                            .RecipDisplayName = DDD.Email
                        'Else
                        '    GoTo InvioAnnullato
                        'End If
                    End If
                Else
                    .RecipDisplayName = DDD.Email
                End If
            ElseIf Err.Number = 32026 Then
                ' L'utente ha annullato l'apertura della rubrica
                ' di Outlook
                .RecipDisplayName = DDD.Email
            End If
            On Error GoTo 0
            Chiave = Chiave + 1
        Next DDD
        If IsNull(M_OggettoMail) Or M_OggettoMail = "" Then .MsgSubject = " 
" Else .MsgSubject = M_OggettoMail
        If IsNull(M_TestoMail) Or M_TestoMail = "" Then .MsgNoteText = " " 
Else .MsgNoteText = M_TestoMail
        If F_Shell.FileEsiste(M_PercorsoAllegato) = True Then 
.AttachmentPathName = M_PercorsoAllegato
        On Error Resume Next
        If M_IndirizzoDestinatario = "" Or M_visualizzaanteprima = True Then
            .Send 1
        Else
            .Send
        End If
    End With
    .SignOff
End With
Exit Sub
InvioAnnullato:
    Beep
    MsgBox "Invio annullato dall'utente.", vbInformation, "Invio Mail"
End Sub
Grazie
Ciao
Luca 

 With Me.MAPISession1
qui anche...
Dovresti elencarmi le References spuntate
in Tools -> References...
Bruno
 

 ha scritto nel messaggio 
news:4c7e18b4$0$31379$4faf...@reader1.news.tin.it...

Volevo semplificare il codice togliendo un po' di dipendenze...
Poi ho pensato di provare un codice differente e ho trovato l'esempio di 
Alessandro Baraldi
Anche quello mi da errore "Failure" allo stesso punto, cioè dopo aver 
cliccato su "consenti" nella finestra di outlook
Ho visto in giro che anche altri hanno avuto lo stesso problema e che in 
alternativa si può usare giemail.ocx ma a me serve passare per out look 
purtroppo... (o out look express, quello che c'è dal cliente insomma)
Grazie
Ciao
Luca
 

 purtroppo... (o out look express, quello che c'č dal cliente insomma)
Prova cosě:
=======================================
Private Sub SendMail_Click()
' Access 2003, Outlook 2003, References:
' Visual Basic for Applications
' Microsoft Access 11.0 Object Library
' Microsoft Outlook 11.0 Object Library
'
Dim NewMail As MailItem, AttachArray(1 To 2) As String, i As Integer
Set NewMail = CreateObject("Outlook.application").CreateItem(olmailitem)
AttachArray(1) = "C:\aa1.txt"
AttachArray(2) = "C:\aa2.txt"
With NewMail
    .To = [eMailAddress]
    .Subject = [eMailSubject]
    .Body = [eMailMessage]
    .CC = "
brun...@libero.it
;
cmp...@gmail.com
"
    For i = 1 To 2
        .Attachments.Add AttachArray(i)
    Next
    .Send
End With
End Sub
=========================================
Bruno
PS
Circa il Warning... non so toglierlo in Access 2003,
mentre si toglie facilmente in Access 2007 | 2010 


-- 
Daniele
Rispondere scartando OneEDP, spam e 32

 Stavo per proporre la soluzione very it clickyes!
Outlook 2007:
Tools -> Trust Center -> Programmatic Access -> Never warn me about...
Outlook 2010
File -> Options -> Trust Center -> Trust Center Settings ->
       -> Programmatic Access -> Never Warn me about...
Bruno 

 Bruno
Sì, ma non va a discapito della sicurezza del pc sul quale fai questa 
manovra?

 ha scritto nel messaggio 
news:4c7e7dc1$0$18651$4faf...@reader3.news.tin.it...

Ma cosě funziona solo con Outlook giusto?
Io non posso sapere cos'ha il cliente...
Luca 

 
hai due strade:
- scrivi il codice per spedire email in automatico con qualsiasi client, 
rilevi il client correntemenete installato sul sistema e spedisci con 
quello
- scegli uno o due client da supportare, li indichi tra i requisiti per 
l'installazione e scrivi il codice per spedire con quello/i
il codice relativo alla prima voce lo porta babbo natale ai programmatori 
che hanno fatto i bravi durante l'anno...
^^
seriamente, pensare di automatizzare l'invio con qualsiasi client l'utente 
finale possa avere installato e' pura follia...


 Luca
Cambia mestiere!
Bruno 


Sai che ci penso spesso.
Non č che sia proprio redditizio quello che faccio :-)
Ciao


 Ciao
Ma non era rivolto a te!
Comunque il mestiere piů bello, dopo averne cambiati
quattro durante la vita, č quello del pensionato.
Credimi!
Bruno 


So che non era rivolto a me... ma riflettevo sull'ippica...
per la pensione... ci vorranno ancora molte lune


 finale possa avere installato e' pura follia...
Penso che farň proprio cosě, magari supportando solo i 3/4 client piů 
utilizzati...
Grazie
Ciao
Luca 

 ha scritto nel messaggio 
news:4c7f5752$0$18653$4faf...@reader3.news.tin.it...

Grazie lo stesso ma Paolo mi ha dato una soluzione che mi piace di piů
Ciao
Luca