Spedire una mail con file allegati e/o in formato HTML
> Scritto da Fonte Esterna il giorno 16/01/2003

  Autore: PritOnLine.it

Utile funzione VBScript che, grazie all'oggetto standard CDONTS.NewMail, consente di spedire una generica mail tramite pagina ASP: è possibile sia allegare alla mail file binari (ad es. file ZIP) sia formattare la mail in HTML inviando pure le relative immagini (file GIF o JPG) ivi utilizzate.

<%

Function SendMail(sFrom, sTo, sSub, sBody, iFrm, iPry, sFile, sURL)

    ' sFrom = indirizzo e-mail del mittente (stringa)
    ' sTo = indirizzo e-mail del destinatario (stringa)
    ' sSub = titolo della mail (stringa)
    ' sBody = testo della mail (stringa)
    ' iFrm = formato della mail (intero, 0=HTML 1=TXT)
    ' iPry = priorità della mail (intero, 0=BASSA 1
     =NORMALE 2=ALTA)
    ' sFile = lista dei file da allegare alla mail (stringa)
    ' sURL = lista delle 
     immagini presenti nel testo della mail (stringa)

    Dim objMail, objFile, arrFile, oneFile, imgName, j

    On Error Resume Next

    '----------------------------------------------'
    Set objMail = Server.CreateObject("CDONTS.NewMail")
    '----------------------------------------------'

    If Err.Number = 0 Then

        ' Setta le PROPRIETA' principali della MAIL
        objMail.From = sFrom
        objMail.To = sTo
        objMail.Cc = ""	' indirizzi e-mail 
                                            del tipo "carbon copy"
        objMail.Bcc = ""        ' indirizzi 
                                             e-mail del tipo "blind carbon copy"
        objMail.BodyFormat = iFrm
        objMail.MailFormat = iFrm
        objMail.Importance = iPry
        objMail.Subject = sSub
        objMail.Body = sBody

        ' Allega i FILE da spedire assieme alla MAIL
        Set objFile = CreateObject("Scripting.FileSystemObject") 
        arrFile = split(sFile, " ")
        for j = 0 to uBound(arrFile)
            oneFile = Server.MapPath(arrFile(j))    
          ' path file da allegare
            if objFile.FileExists(oneFile) then
                objMail.AttachFile oneFile	
           ' allega il file (solo se esiste)
            end if
        next
        Set objFile = Nothing

        
        ' Allega le IMMAGINI da mostrare nel BODY (in formato HTML)
        if (iFrm = 0) then
            Set objFile = CreateObject("Scripting.FileSystemObject") 
            arrFile = split(sURL, " ")
            for j = 0 to uBound(arrFile)
                oneFile = Server.MapPath(arrFile(j))    
            ' path img da allegare
                if objFile.FileExists(oneFile) then
                    imgName = Right(oneFile, len(oneFile)-instrrev(oneFile,"\"))
                    objMail.AttachURL oneFile, imgName	
            ' allega l'immagine
                end if
            next
            Set objFile = Nothing 
        end if

        ' Spedisci la MAIL
        objMail.Send 
        Set objMail = Nothing
        SendMail = True

    Else
        
        ' Server non supporta oggetto CDONTS.NewMail
        SendMail = False
    End If

End Function

%>

Nel corpo della funzione SendMail all'inizio vengono settate tutte quante le proprietà dell'oggetto CDONTS.NewMail (mittente, destinatario, formato, priorità, titolo e corpo messaggio) poi a seguire vengono allegati i file binari (solo se essi sono residenti sul server dove si trova la pagina ASP con questa funzione) ed infine vengono allegate anche le immagini (previa verifica della loro esistenza sul server) utilizzate nella formattazione HTML del testo della mail. Ma vediamo 2 esempi pratici d'utilizzo della funzione:

1° esempio - spedire una MAIL in formato TXT con allegati 2 file ZIP

<%

iFrm  = 1    ' formato TXT

sFile = "/public/zip/gif08.zip /public/zip/gif09.zip"  
 ' 2 file ZIP


 ' N.B. Nella stringa sFile il separatore è lo spazio !!!

if SendMail("mittente@email.it", "destinatario@email.it", _
                 "Titolo della Mail", "Testo della Mail", iFrm, 1, sFile, "") then
    response.write "MAIL spedita alle ore " & Time() 
end if

%>

2° esempio - spedire una MAIL in formato HTML con 4 immagini GIF

<%

iFrm  = 0    ' formato HTML

sBody = "<HTML>" &_
              "<BODY background='sfondo_welcome.gif'>" &_
              "<P> </P>" &_
              "<TABLE border=1 cellpadding=8 cellspacing=2>" &_
              "<TR><TD><b>BUTTON</b></TD>" &_
              "<TD><IMG src='88x31.gif' border=0></TD></TR>" &_
              "<TR><TD><b>BANNER</b></TD>" &_
              "<TD><IMG src='120x60.gif' border=0></TD></TR>" &_
              "<TR><TD><b>BANNER</b></TD>" &_
              "<TD><IMG src='468x60.gif' border=0></TD></TR>" &_
              "</TABLE>" &_
              "<P> </P>" &_
              "</BODY>" &_
              "</HTML>"

' N.B. Usare solo il 
nome dell'immagine, non serve il path completo !!!

sURL  = "/images/sfondo_welcome.gif /banners/88x31.gif " &_
             "/banners/120x60.gif /banners/468x60.gif"    
' 4 immagini GIF

' N.B. Nella stringa sURL il separatore è lo spazio !!!

if SendMail("mittente@email.it", "destinatario@email.it", _
                 "Titolo della Mail", sBody, iFrm, 1, "", sURL) then
    response.write "MAIL spedita alle ore " & Time() 
end if

%>


--------------------------------------------------------------------------------------------
AZPoint.net - http://www.azpoint.net
Vietata ogni forma di duplicazione