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:
Tipo di errore:
Errore di run-time di Microsoft VBScript (0x800A01A8)
Necessario oggetto: 'Files'
/cartella/upload.asp, line 380
Ovviamente non sono andato a spulciarmi il file... Sapete dirmi cos'è?