Invio email: problema di funzionamento

di il
7 risposte

Invio email: problema di funzionamento

Ciao a tutti.

Qualche tempo fa avevo creato una funzione per inviare delle email con allegati, e funzionava a dovere.

Poi non l'ho più usata (non ce ne era necessità), ma quando ho provato a riutilizzarla oggi, mi da errore di Microsoft Software Installer.

C'è da dire che dall'ultima volta che l'avevo usata siamo passati dalla versione 32 a quella 64bit

La funzione è questa:

Public Function MailTo(Indirizzo As String, Allegato As String, IDStrumento As Integer, TipoDoc As String)
'Invia Mail all'indirizzo specificato
Dim OutApp As Object
Dim OutMail As Object
Dim AccountMail As String

Set OutApp = CreateObject("Outlook.Application")
'OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next

With OutMail

Set .SendUsingAccount = OutApp.Session.Accounts.Item(1)   'Questo comando (notare che inizia con Set e non con il punto) imposta come account per l'invio il secondo account

.Display 'In questo modo mostra la mail generata
.To = Indirizzo
.BCC = ""
.Subject = "Aggiornamento pratiche strumenti: ID " & IDStrumento & " - " & TipoDoc
.Body = "In allegato la documentazione per l'aggiornamento della pratica" & vbNewLine & OutMail.Body          'OutMail.Body inserisce la firma prevista per l'account scelto
'.Send        'ABilitando Send e disabilitando Display invia la mail generata direttamente senza farla vedere
.Attachments.Add (Allegato)
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Function

Suggerimenti?

Grazie

Andrea

7 Risposte

  • Re: Invio email: problema di funzionamento

    Intanto togli

    On Error Resume Next

    e vedi quali errori hai

  • Re: Invio email: problema di funzionamento

    Il metodo SEND va usato DOPO Attachments.Add()…?

  • Re: Invio email: problema di funzionamento

    Naturalmente ha ragione Alex ma direi che manca completamente un metodo, il .Send non è attivo e non esiste un .Display

    Quindi, come ha fatto a funzionare fino ad ora?

  • Re: Invio email: problema di funzionamento

    Sul “come abbia fatto a funzionare” non ti so dare una spiegazione, ma funzionava (diversamente cancello la funzione se non ottengo il risultato).

    Sul “fino ad ora” invece si: questa funzione risale almeno a 6 anni fa, quando avevo necessità che chi usava il DB mi avvisasse con una mail prefabbricata con possibilità di integrare il testo (ecco perchè il .Send è remmato ed è attivo il .Display) e indirizzata a me. Siccome la cosa non ha mai avuto successo (la pigrizia a volte è paradossale: invece di premere un pulsante dal tuo ufficio, ti fai una scarpinata - e ritorno - fino al mio ufficio….) e non aveva senso scrivere a me stesso, eliminai il pulsante, ma la funzione è rimasta là nel dimenticatoio per 6 anni. adesso ho necessità di riprenderla (per alti motivi)

    Il metodo .Send è remmato perchè non doveva spedirla automaticamente; anche se in posizione sicuramente errata (non perchè lo dico io, ma perchè lo dite voi e questo mi basta), ma è molto probabile che all'epoca facevo delle prove e quindi dopo aver remmato il .Send ho implementato il .Attach (anche a logica, prima compongo la mail attach compreso e poi la mando)

    Il metodo .Display è presente (riga 16): l'utente poteva aggiungere qualcosa al testo e poi spedirla

    Tolto il Resume Next, ma ottengo sempre lo stesso errore e allo stesso punto, alla riga 7

    Set OutApp = CreateObject("Outlook.Application")

    “Errore di runtime ‘-2147457229 (80004023)’: E' stato rilevato un errore di Microsoft Software Installer”

    Come detto, l'unica differenza tra allora ed oggi è che siamo passati da Office 2007 a 32 bit a Office 2016 a 64 bit

  • Re: Invio email: problema di funzionamento

    1) senza la .Send la mail non può essere inviata “dal codice”

    2) non avevo visto la .Display (anche perché in genere si pone alla fine) e quindi, dopo visualizzata la mail, questa si doveva spedire “a mano”

    3) togliere l'on error non serviva a “risolvere” ma a controllare se c'erano “altri” errori più significativi

    Comunque l'errore che hai non ha nulla a che vedere con il codice ma con quello che hai fatto con Office sul tuo PC.

    E' un messaggio tipico di problemi di installazioni di varie versioni di Office e di mancate disinstallazioni di versioni precedenti.

    Direi che dovresti disinstallare correttamente le versioni di Office che non utilizzi e installarne usa sola pulita.

    Non è un problema di programmazione

  • Re: Invio email: problema di funzionamento

    1) Infatti avevo remmato il .Send proprio perchè la mail doveva essere poi inviata manualmente (l'automazione doveva solo predisporla per l'utente)

    2) L'interesse mio principale era che volevo fosse visualizzata (punto 1) ecco perchè l'ho messa all'inizio; poi visto che non dava problemi l'ho lasciato in quella posizione (diversamente l'avrei messa in altra posizione)

    3) si avevo pensato la stessa cosa. Tuttavia, se si blocca ad inizio routine per  un problema (al momento) non legato alla programmazione ma all'installazione, non potrei escludere che siano comunque presenti errori di altro tipo.

    Purtroppo non lo saprò mai….i nostri pc sono bloccati da quel punto di vista: qualunque cosa riguardi il SO (comprese le installazioni / update / etc di software) viene effettuata dai responsabili tecnici. L'unica cosa è provare a parlare con qualcuno di loro direttamente, ma sono poco fiducioso (sono l 'unico, per quanto ne sappia, che usa il lato “programmabile” di office per facilitarsi il lavoro, gli altri si limitano ad usarlo…).

    Grazie lo stesso per il supporto

  • Re: Invio email: problema di funzionamento

    Probabilmente, per problemi di configurazione non perfetta, il codice fa partire l'installer che si blocca con un errore dato che non sei amministratore.

    Devi parlare con un tecnico/sistemista/responsabile della configurazione dell'azienda e indicare l'errore.

    Dovrebbero risolverlo.

Devi accedere o registrarti per scrivere nel forum
7 risposte