Inviare una mail (con allegato) utilizzando CDOSYS

La libreria CDOSYS, come descritto qui http://msdn.microsoft.com/en-us/library/aa505938.aspx, è una implementazione del protocollo SMTP, e consente di mandare agevolmente mail da sistemi basati su Windows XP e 2000, dove queste librerie sono presenti di default.
Il codice sottostante fa parte di una macro in ambiente Excel 2007, e gira sia sotto XP che Vista.

Public Function inviaMailSMTP(server As String, 
                                         mittente As String, destinatario As String, 
                                         oggetto As String, testo As String, allegato As String) 
                                         As StringDim iMsg As Object
 
Dim iConf As Object
Dim Flds As ObjectOn Error GoTo error_handler
 
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
 
iConf.Load -1
Set Flds = iConf.Fields
With Flds
   .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
   .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = server
   .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 
   .Update
End With
 
With iMsg
   Set .Configuration = iConf
   .To = destinatario
   .CC = ""
   .BCC = ""
   .From = mittente
   .Subject = oggetto
   .TextBody = testo
   'Invio con allegato
   If allegato > "" Then .AddAttachment allegato
   .Send
End With
 
inviaMailSMTP = "Invio corretto."
 
Exit Function
 
error_handler:
   inviaMailSMTP = "Errore: " & Err.Description
End Function

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>