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
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.