Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Invio mail tramite Excell (macro vb senza la richiesta di Outlook)
Forum - Visual Basic 6 - Invio mail tramite Excell (macro vb senza la richiesta di Outlook)

Avatar
a_butta (Member)
Expert


Messaggi: 578
Iscritto: 16/03/2010

Segnala al moderatore
Postato alle 15:23
Domenica, 11/11/2012
Ciao a tutti
Ho bisogno di una subroutine che, premuto un bottone in Excell, invii una mail da un mittente predefinito ad un destinatario predefinito senza bisogno di passare via Outlook. Cercando in internet ho trovato e adattato il seguente codice (che utilizza la libreria CDO):

Codice sorgente - presumibilmente VB.NET

  1. Sub Pulsante1_Click()
  2. Set mess = CreateObject("CDO.Message")
  3. Set config = CreateObject("CDO.Configuration")
  4.  
  5. config.Load -1 ' CDO Source Defaults
  6. config.Fields.Item("schemas.microsoft.com/cdo/configuration/sendusing") = 2
  7. config.Fields.Item("schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.libero.it"
  8.  
  9. 'Type of authentication, NONE, Basic (Base64 encoded), NTLM
  10. config.Fields.Item("schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
  11.  
  12. 'Your UserID on the SMTP server
  13. config.Fields.Item("schemas.microsoft.com/cdo/configuration/sendusername") = "miamail@libero.it"
  14.  
  15. 'Your password on the SMTP server
  16. config.Fields.Item("schemas.microsoft.com/cdo/configuration/sendpassword") = "miapassword"
  17.  
  18. config.Fields.Item("schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
  19.  
  20. config.Fields.Update
  21.  
  22. With mess
  23. Set .Configuration = config
  24. .To = "maildestinatario@yahoo.it"
  25. .CC = ""
  26. .BCC = ""
  27. .From = "miamail@libero.it"
  28. .Subject = "PROVA"
  29. .TextBody = "Invio da Excell"
  30. End With
  31.  
  32. mess.Send
  33. End Sub



Ovviamente il codice non funziona e mi restituisce il seguente errore:

Error di run-time '-2147220960 (80040220)':
Il valore di configurazione "SendUsing" non è valido


Ho provato a impostare come parametro SendUsing sia 1, 2 che 3.

Devo ammettere che non sono un esperto di VB, ma ho necessità pratiche e lavorative di sviluppare questo codice...
Qualcuno potrebbe aiutarmi a risolvere il problema?

Grazie anticipatamente!

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6379
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:34
Domenica, 11/11/2012
Intanto partiamo dal fatto (importante) che il prodotto si chiama Excel (con una l non Excell).

In secondo luogo, questo mi pare sia il forum per il VB6 e non per il VBA di Excel. Anche se ci sono somiglianze forse sarebbe meglio spostarlo in "Altri linguaggi".

Comunque,  mi sa che con il valore 1 si intende che il server smtp è installato in locale (e non mi pare tu abbia il server installato).

Con il valore 2, viene usato il default account di Outlook che non sarà quello. (il 3 è per Exchange ...)

Probabilmente se installi il server smtp sul tuo PC e usi il valore 1, dovrebbe funzionare.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
a_butta (Member)
Expert


Messaggi: 578
Iscritto: 16/03/2010

Segnala al moderatore
Postato alle 16:15
Domenica, 11/11/2012
Per Excel hai ragione, mi sono confuso.
Per il linguaggio credo che alla fine non sia proprio sta gran differenza, se comunque c'è da spostarlo in Altri Linguaggi, va bene, chiedo scusa...

Comunque il problema è che io ho bisogno di inviare la mail da un indirizzo ben preciso, senza che tale indirizzo sia configurato per forza con Outlook... Ci sarebbe qualche modo per farlo? Anche ricorrendo a qualcosa di diverso rispetto a CDO...

PM Quote