Dunque sto cercando di creare un'applicazione che attraverso un semplice form permetta di inviare mail con allegati.
Copia-incollando in giro sono arrivato a questo:
form.asp
codice:<HTML> <HEAD> <TITLE>Manda Email</TITLE> </HEAD> <BODY> <FORM ACTION="manda.asp" METHOD="post" enctype="multipart/form-data"> <div align="center"> <table border="0" width="85%" celpadding="2" cellspacing="2"> <tr> <td> <h1>Manda E-mail<hr align="LEFT" size="1" width="100%" color="navy"></h1> </td> </tr> <tr> <td> Compila il Form </td> </tr> <td align="center"> <table width="60%" border="0" celpadding="2" cellspacing="2"> <tr> <td>Subject</td> <td><INPUT NAME="subject" TYPE="TEXT" size=30 MAXLENGTH=50></td> </tr> <tr> <td>Email destinatario</td> <td valign="top"> <INPUT NAME="destinatario" TYPE="TEXT" ALIGN=left size=30 MAXLENGTH=50> </td> </tr> <tr> <tr> <td valign="top">Testo</td> <td><TEXTAREA NAME="testo" ROWS=7 COLS=42></TEXTAREA></td> </tr> <tr> <td valign="top">Allega</td> <td><input type="file" name="file1" /></td> </tr> <tr> <td colspan="2" align="center"> <table width="50%" border="0" celpadding="6" cellspacing="2"> <tr> <td><input type="submit" name="invio" value=" Invia "></td> <td align="right"> <INPUT TYPE="reset" NAME="reset" VALUE=" Reset "></td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </div> </FORM> </BODY> </HTML>
manda.asp
codice:<% Dim form, nome, allegato %> <Html> <head> <title>Manda Email</title> </head> <body> <% Dim oUpload Set oUpload = new cUpload oUpload.Load if oUpload.Count=0 then Response.Write "Nessun file caricato" response.write "<a href=Javascript:history.go(-1)>Pagina precedente</a>" Else While Not oUpload.EOF oUpload.Save() Response.Write "Salvo il file : " & oUpload.GetFileName() & " " Response.Write "Percorso fisico : " & oUpload.GetCompletePathFile() & " " allegato = oUpload.GetFileName() Response.Write "Percorso Web : " & oUpload.GetHTTPPathFile() & " " Response.Write "Dimensioni del file : " & oUpload.Files("Size") & " " Response.Write "<hr>" oUpload.MoveNext Wend End if oUpload.PrintStatus "Report" Set oUpload=Nothing call Main() Sub Main() 'se la lungezza è 0 non c'e niente nell email If Len(Request.Form("mittente")) = 0 then no_email() else manda_posta(form) ecco_fatto(nome) end if End sub Sub no_email() 'allora diciamo al cliente che senza una email non possiamo rispondergli response.write "<div align='center'>" response.write "<table border='0' width='80%' cellspadding='4' cellspacing='4'>" response.write "<tr><td>Non hai inserito il tuo indirizzo E-mail</td></tr>" response.write "<tr><td>Per favore, torna indiedro e ricompila il form </td></tr>" response.write "<tr><td align='middlè>" response.write "<a href=Javascript:history.go(-1)>Pagina precedente</a>" response.write "</td></tr></table></div>" End Sub Sub manda_posta(form) Dim mittente, testo Dim objMail, objMailConfig, mandamiquesto 'facciamo la vendemmia dell'input nome = Request.Form("subject") mittente = Request.Form("mittente") testo = Request.Form("testo") mandamiquesto = testo 'costruiamo un NewMail oggetto Set objMail = Server.CreateObject("CDO.Message") Set objMailConfig = Server.CreateObject ("CDO.Configuration") ' Proprietà di invio with objMailConfig ' SMTP mail server .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.fastwebnet.it" ' SMTP port .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 ' CDO port .Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 ' Timeout .Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 .Fields.Update end with Set objMail.Configuration = objMailConfig 'adesso che abbiamo accesso a tuttle le sue proprieta, usiamole 'prendiamo il nome dal Form di input objMail.From = "mia_mail@hotmai.it" 'mandiamola objMail.To = Request.Form("destinatario") 'mettiamoci un riga per il titolo objMail.Subject = nome 'e nel corpo ci mettiamo la stringa che abbiamo costruito objMail.TextBody = mandamiquesto objMail.AddAttachment Server.MapPath("allegato") 'al momento è poco importante, direi objMail.Fields("urn:schemas:httpmail:importance").Value = 0 objMail.Fields.update() 'e via che va objMail.Send 'e adesso puliamo prima di andarcene Set objMail = Nothing end sub Sub ecco_fatto(nome) response.write "<div align='center'>" response.write "<table border='0' width='80%' cellspadding='4' cellspacing='4'>" response.write "<tr><td>Grazie " & nome & " per la mail</td></tr>" response.write "<tr><td align='middlè>" response.write "<a href=Javascript:history.go(-2)>Torna indietro</a>" response.write "</td></tr></table></div>" End sub %> </body> </html>
upload.asp è il file di baol (ho scaricato upload312.zip linkato in altri thread di questo forum)
Mi da questo errore:
Ovviamente non sono andato a spulciarmi il file... Sapete dirmi cos'è?Tipo di errore:
Errore di run-time di Microsoft VBScript (0x800A01A8)
Necessario oggetto: 'Files'
/cartella/upload.asp, line 380

Rispondi quotando
ma va bene...
