Errore su invio mail in VBA

di il
18 risposte

Errore su invio mail in VBA

Ciao a tutti,
ho in VBA (Access 2003 SP2) uno script che invia una mail ad un certo numero di destinatari (tutti in BCC).
Gli indirizzi dei destinatari vengono presi da una tabella CLIENTI.
Lo script funziona benissimo, se non per il fatto che se i destinatari sono piu di 90, ricevo un "Errore di runtime 87. Errore imprevisto".
Lo script è il seguente:
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strMail As String
Dim Subjectline As String
Dim BodyFile As String
Dim MyBodyText As String
Dim strBCC As String
Subjectline = Me.Testo1.Value
BodyFile = Me.Testo2.Value


Set db = CurrentDb()
Set rs = db.OpenRecordset("SELECT Email FROM clienti WHERE (EMail <> ' ')")
If rs.RecordCount = 0 Then
MsgBox "Nessun indirizzo email trovato!", vbCritical, "ERROR"
Exit Sub
End If
While Not rs.EOF
strMail = strMail & rs("Email") & ";"
rs.MoveNext
Wend

Set rs = Nothing
FollowHyperlink "mailto:?bcc=" + strMail + "&subject=" + Subjectline + "&body=" + BodyFile
Exit Sub
IL codice funziona perfettamente. Lo script cicla i destinatari e li mette tutti in BCC aprendo una nuova finestra del mio programma di posta predefinito (in questo caso Outlook 2013), ma solo se nella mia tabella CLIENTI ho meno di 90 indirizzi email. Sopra i 90 mi da l'errore sopra citato senza nemmeno arrivare ad aprire la finestra del programma di posta.
Quando ricevo l'errore, se apro il debug, mi rimanda a questa riga:
FollowHyperlink "mailto:?bcc=" + strMail + "&subject=" + Subjectline + "&body=" + BodyFile
Quindi sembrerebbe che fa tutto ma si inchioda quando deve lanciare Outlook.
Qualche idea?
Grazie

18 Risposte

  • Re: Errore su invio mail in VBA

    Prova a leggere questo:
    **
  • Re: Errore su invio mail in VBA

    Grazie della risposta.
    Quindi consigli di usare MAPI per saltare l'utilizzo del client di posta e fare un invio SMTP direttamente da Access?
    Non c'è verso di risolvere la cosa sul mio codice?
  • Re: Errore su invio mail in VBA

    Di sicuro non si usa FollowHyperlink... eventualmente puoi provare con SendObject...
  • Re: Errore su invio mail in VBA

    Ero partito con SendObject, ma in quel caso mi si apriva un messaggio di Outlook che diceva che un'applicazione esterna stava tentando di utilizzare Outlook, e non sono riuscito in nessun modo a togliermi quel messaggio dalle impostazioni di Outlook...
    Specifico: non era il popup con i pulsanti ALLOW e DENY, era un messaggio che mi compariva come "fumetto" sull'icona nella barra delle applicazioni di Windows, che non consentiva di fare nulla.
    Sono passato a FollowHyperlink per quello.
  • Re: Errore su invio mail in VBA

    È una coincidenza allora la problematica dell'altro forum oppure sei sempre tu l'autore...?
  • Re: Errore su invio mail in VBA

    Quale altro forum? Io ho postato solo qui... Non faccio crossposting.
    Ho letto su diversi forum di problemi simili, ma credo il mio sia diverso... Il mio è un errore di Runtime che non credo dipenda da Outlook
  • Re: Errore su invio mail in VBA

    A proposito, in quell'altro forum hanno per caso trovato una soluzione?
  • Re: Errore su invio mail in VBA

    Volevo chiedere se possibile un chiarimento rispetto a MAPI, che non ho mai utilizzato e che non conosco bene.
    Tramite MAPI faccio un invio SMTP direttamente da Access senza usare il mio client di posta?
  • Re: Errore su invio mail in VBA

    alexxx71 ha scritto:


    Volevo chiedere se possibile un chiarimento rispetto a MAPI, che non ho mai utilizzato e che non conosco bene.
    Tramite MAPI faccio un invio SMTP direttamente da Access senza usare il mio client di posta?
    Il protocollo è sempre quello, MAPI è la libreria su cui si appoggia MsOutlook...!
  • Re: Errore su invio mail in VBA

    Quindi sopra i 100 destinatari mi ritroverei sempre con lo stesso problema (limite di Outlook).
    Si potrebbe magari "spezzettare" l'invio su diverse email, con un limite di 90 destinatari per ogni mail?
  • Re: Errore su invio mail in VBA

    alexxx71 ha scritto:


    Quindi sopra i 100 destinatari mi ritroverei sempre con lo stesso problema (limite di Outlook).
    Hai provato...?

    alexxx71 ha scritto:


    Si potrebbe magari "spezzettare" l'invio su diverse email, con un limite di 90 destinatari per ogni mail?
    Fossi in te proverei...
  • Re: Errore su invio mail in VBA

    Si, come ho detto in precedenza sopra i 90 destinatari ho quell'errore di Runtime.
    Utilizzando il metodo SendObject invece, mi da il problema sopra citato di programma esterno che cerca di accedere ad outlook...
    Naturalmente la cosa migliore sarebbe risolvere il problema che ho su Outlook, ma proprio non riesco ad uscirne.
    Avresti qualche suggerimento su come spezzettare in diverse email? O su come risolvere il problema di Outlook?
  • Re: Errore su invio mail in VBA

    alexxx71 ha scritto:


    Si, come ho detto in precedenza sopra i 90 destinatari ho quell'errore di Runtime.
    Soluzione semplice:
    puoi eseguire un ciclo 'a step' di 90 record alla volta.
  • Re: Errore su invio mail in VBA

    Grazie gibra, sapresti indicarmi come farlo? Non l'ho mai fatto e non so come muovermi...
Devi accedere o registrarti per scrivere nel forum
18 risposte