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

di Daniele Bochicchio, in Classic ASP, E-mail, Report,

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:
https://www.aspitalia.com/liste/usag/script.aspx?ID=197

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi