#435 - Un report generato con una pagina ASP allegato ad un'e-mail di CDONTS

Qual è il modo più semplice per allegare una documento (ad esempio Excel) ad un messaggio di e-mail?
Eseguire la pagina e catturarne l'output attraverso un component come XMLHTTP, per procedere infine al salvataggio via FileSystemObject sul disco del server. Insomma, emulando la richiesta che si farebbe con un normale browser.

Dunque, procediamo per passi. Per prima cosa, la nostra pagina col il preventivo sarà generata da uno script come il #197.
E' l'unico pezzo che si trova fuori dallo script vero e proprio, che segue, e che crea il report, lo allega, invia l'e-mail e poi provvede a cancellare il file temporaneo:

<%
' file di appoggio
Dim strFileTemp
strFileTemp = Server.MapPath("report" & Session.SessionID & ".xls")

Sub CreaReport(ID)
  ' URL da richiamare
  url = "http://localhost/report.asp?ID=" & ID

  ' creiamo l'oggetto WinHTTP
  Set objHTTP = Server.CreateObject("WinHTTP.WinHTTPRequest.5")
  objHTTP.Open "GET", url

  ' inviamo la richiesta
  objHTTP.Send

  ' salvo il file
  Set FSO = Server.CreateObject("Scripting.FileSystemObject")
  Set FW = FSO.OpenTextFile(strFileTemp, 2, True)
  FW.Write(objHTTP.ResponseText)
  FW.Close
  Set FSO = Nothing

  ' un po' di pulizia
  Set objHTTP = Nothing
End Sub

' creo il report
CreaReport(IDOrdine)

' allego il report e lo invio via e-mail
Set objMail = Server.CreateObject("CDONTS.NewMail")

' allego il file
objMail.AttachFile strFileTemp , "preventivo.xls"

objMail.From = "vendite@sito.ext"
objMail.To = "utente@sito.ext"
objMail.Subject = "Preventivo"
objMail.Body = "In allegato il preventivo richiesto"

objMail.Send
Set objMail = nothing

' per finire, cancello il report appena creato
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
FSO.DeleteFile(strFileTemp)
Set FSO = Nothing

%>

Ovviamente l'esempio può essere modificato per funzionare con altri tipi di report, come immagini, file ASCII, DOC o PDF.

Per lo script #197 si veda:
http://www.aspitalia.com/liste/usag/script.aspx?ID=197


Approfondimenti

Commenti

Esprimi il tuo giudizio su questo script:

Per procedere devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.




IN EVIDENZA
MISC