- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- Invio email in ASp..mi date un consiglio
-
Leggiti il codice postato da Tifo-Napoli. Noterai che i metodi che utilizzate sono differenti, tu stai utilizzando CDONTS mentre lui sta utilizzando CDOSYS. Le nuove piattaforme hosting di solito non supportano più il (buon) vecchio cdonts. è probabile che sia questo il problema e che tu sia costretto ad utilizzare cdosys
-
ok allora ho uno script cdosys.... ma non capisco una cosa
' Assegna all'oggetto le proprietà necessarie
objMail.From = "[email protected]" ' Mittente
objMail.To = Request.Form("email") ' Destinatario
objMail.Subject = Request.Form("oggetto") ' Oggetto
objMail.HTMLBody = Request.Form("messaggio") ' Messaggiobene...dove dice mittente ok....il campo del form lo riempirà il mittente.....
ma in destinatario dovrei inserirci la mia mail fissa.....nella riga
objMail.To = Request.Form("email") ' Destinatario
dove dovrei mettere la mia mail???p.s è possibile che form e script siano in una stessa pagina o devono risiedere in una pagina diversa?
-
@La Maglia Rosanero said:
ok allora ho uno script cdosys.... ma non capisco una cosa
' Assegna all'oggetto le proprietà necessarie
objMail.From = "[email protected]" ' Mittente
objMail.To = Request.Form("email") ' Destinatario
objMail.Subject = Request.Form("oggetto") ' Oggetto
objMail.HTMLBody = Request.Form("messaggio") ' Messaggiobene...dove dice mittente ok....il campo del form lo riempirà il mittente.....
ma in destinatario dovrei inserirci la mia mail fissa.....nella riga
objMail.To = Request.Form("email") ' Destinatario
dove dovrei mettere la mia mail???Certo:
objMail.To = "[email protected]"@La Maglia Rosanero said:
p.s è possibile che form e script siano in una stessa pagina o devono risiedere in una pagina diversa?
Certo che è possibile.Potresti inserire nel form un campo hidden di nome "invia" ed assegnarli value=1. Poi fai così:
<% If Request("invia") = "1" then 'codice per invio email Else %> <form> ... </form> <% End if %>
-
Quindi al posto di:
objMail.To = Request.Form("email") ' Destinatariodevo mettere:
objMail.To = "[email protected]" ' Destinatario????
-
Si
-
Nulla non va.....mi dovrebbe dare "Email inviata con Successo" ma non me lo da...clicco su invia e mi cancella i campi......ecco il codice intero:
<%' Controlla invio
if Request.QueryString("invia") = "true" AND Request.Form("submit") = "invia" thenDim objMail, objConfig
' Crea l'oggetto email
Set objMail = Server.createObject("CDO.Message")' Dimensiona l'oggetto configurazione
Set objConfig = Server.createObject ("CDO.Configuration")' Imposta le configurazioni
With objConfig' Server SMTP di uscita
' ATTENZIONE! Usare il proprio indirizzo di server email!
' E' FONDAMENTALE per l'invio della email
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.aruba.it"' Porta SMTP
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25' Porta CDO
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2' Timeout
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Fields.updateEnd With
' Assegna le configurazioni
Set objMail.Configuration = objConfig' Assegna all'oggetto le proprietà necessarie
objMail.From = "[email protected]" ' Mittente
objMail.To = "[email protected]" ' Destinatario
objMail.Subject = Request.Form("oggetto") ' Oggetto
objMail.HTMLBody = Request.Form("messaggio") ' Messaggio' Invia l'email
objMail.Send()Set objMail = Nothing
Response.Write("Email inviata correttamente " &_
"all'indirizzo " &_
Request.Form("email"))else %>
<form name="formail" method="post" action="?invia=true">
<table align="center" cellpadding="3" cellspacing="1">
<tr>
<td>Email</td>
<td>
<p align="center"><input name="email" style="float: left" /></td>
</tr>
<tr>
<td>Oggetto</td>
<td>
<p align="center"><input name="oggetto" style="float: left" /></td>
</tr>
<tr>
<td height="103">Messaggio</td>
<td height="103">
<p align="center"><textarea name="messaggio" rows="11" cols="54"></textarea></td>
</tr>
<tr>
<td colspan="2">
<p align="center"> <input type="submit" value="Invia" name="submit" /> </td>
</tr>
</table>
</form>
<% end if %>
-
non hai messo il campo hidden ma lascia perdere, vedo che cmq controlli l'invio col valore passato dal pulsante, basta quello. Quindi elimina *Request.QueryString("invia") = "true" AND *:
if Request.Form("submit") = "invia" then
-
ma in locale dovrebbe funzionare vero???
oppure devo upparlo per forza???
ho salvato questa pagina in asp e non in htm.....
ora elimino e provoallora mi da errore linea 47 io ho messo questo :
<%' Crea l'oggetto email
Set objMail = Server.createObject("CDO.Message")' Dimensiona l'oggetto configurazione
Set objConfig = Server.createObject ("CDO.Configuration")ho cancellato quella che dici tu.....e mi da errore nella linea 47 dicendomi come errore la parola ELSE!
-
Posta tutto il codice + la descrizione copleta dell'errore
-
io te lo posto tutto con la stringa che mi hai detto di eliminare.... :
<%
' Controlla invio
if Request.QueryString("invia") = "true" AND Request.Form("submit") = "invia" thenDim objMail, objConfig
' Crea l'oggetto email
Set objMail = Server.createObject("CDO.Message")' Dimensiona l'oggetto configurazione
Set objConfig = Server.createObject ("CDO.Configuration")' Imposta le configurazioni
With objConfig' Server SMTP di uscita
' ATTENZIONE! Usare il proprio indirizzo di server email!
' E' FONDAMENTALE per l'invio della email
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.aruba.it"' Porta SMTP
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25' Porta CDO
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2' Timeout
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Fields.updateEnd With
' Assegna le configurazioni
Set objMail.Configuration = objConfig' Assegna all'oggetto le proprietà necessarie
objMail.From = "[email protected]" ' Mittente
objMail.To = "[email protected]" ' Destinatario
objMail.Subject = Request.Form("oggetto") ' Oggetto
objMail.HTMLBody = Request.Form("messaggio") ' Messaggio' Invia l'email
objMail.Send()Set objMail = Nothing
Response.Write("Email inviata correttamente " &_
"all'indirizzo " &_
Request.Form("email"))else %>
<form name="formail" method="post" action="?invia=true">
<table align="center" cellpadding="3" cellspacing="1">
<tr>
<td>Email</td>
<td>
<p align="center"><input name="email" style="float: left" /></td>
</tr>
<tr>
<td>Oggetto</td>
<td>
<p align="center"><input name="oggetto" style="float: left" /></td>
</tr>
<tr>
<td height="103">Messaggio</td>
<td height="103">
<p align="center"><textarea name="messaggio" rows="11" cols="54"></textarea></td>
</tr>
<tr>
<td colspan="2">
<p align="center"> <input type="submit" value="Invia" name="submit" /> </td>
</tr>
</table>
</form>
<% end if %>
Errore :
Tipo di errore:
Errore di compilazione di Microsoft VBScript (0x800A03EA)
Errore di sintassi
/gestionerecord/contattami.asp, line 47
else
-
Ho provato questo tuo stesso codice e funziona
Non c'è altro codice prima o dopo di questo?
-
eh no......ti ho fatto il copia e incolla di tutta la pagina!
l'hai salvata in asp o in htm??
-
ovviamente .asp
Forse la causa dell'errore è da cercare ne testo che immetti.
Quale testo immetti nel form?
-
immetto in email una email valida in oggetto un testo a caso ma non credo sia importante e nel messaggio un pugno nella tastiera ( così per dire)
alla fine se c'è controllo dei campi l'unicopossibile è in email non negli altri no?
-
Guarda.. ho solo ripulito un po' il tuo codice e funziona, eccolo:
<% If Request.Form("submit") = "invia" then Dim objMail, objConfig Set objMail = Server.createObject("CDO.Message") Set objConfig = Server.createObject ("CDO.Configuration") With objConfig .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.aruba.it" .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 .Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 .Fields.update End With Set objMail.Configuration = objConfig objMail.From = "[email protected]" ' Mittente objMail.To = "[email protected]" ' Destinatario objMail.Subject = Request.Form("oggetto") ' Oggetto objMail.HTMLBody = Request.Form("messaggio") ' Messaggio objMail.Send() Set objMail = Nothing Response.Write("Email inviata correttamente all'indirizzo " & Request.Form("email")) Else %> <form name="formail" method="post" action=""> <table align="center" cellpadding="3" cellspacing="1"> <tr> <td>Email</td> <td> <p align="center"><input name="email" style="float: left" /></td> </tr> <tr> <td>Oggetto</td> <td> <p align="center"><input name="oggetto" style="float: left" /></td> </tr> <tr> <td height="103">Messaggio</td> <td height="103"> <p align="center"><textarea name="messaggio" rows="11" cols="54"></textarea></td> </tr> <tr> <td colspan="2"> <p align="center"> <input type="submit" value="invia" name="submit" /> </td> </tr> </table> </form> <% End if %>
-
allora a me funziona se l'uppo..però c'è un piccolo problema...la mail mi arriva correttamente all'indirizzo palermo.maglie però il mittente è sempre questo : [email][email protected][/email] invece dovrebbe essere quello scritto nel campo email del form!
Set objMail.Configuration = objConfig
objMail.From = "[email protected]" ' Mittente
objMail.To = "[email protected]" ' Destinatario
objMail.Subject = Request.Form("oggetto") ' Oggetto
objMail.HTMLBody = Request.Form("messaggio") ' Messaggio
objMail.Send()
Set objMail = Nothingecco l'indirizzo dove l'ho uppata http://www.la-maglia-rosanero.com/contattami.asp
-
Sicuro di non aver modificato nemmeno l'smtp? Magari hai messo smtp.la-maglia-rosanero.com.
Io ho provato anche in locale e funziona.
-
@La Maglia Rosanero said:
allora a me funziona se l'uppo..però c'è un piccolo problema...la mail mi arriva correttamente all'indirizzo palermo.maglie però il mittente è sempre questo : [EMAIL="[email protected]"][email protected][/EMAIL] invece dovrebbe essere quello scritto nel campo email del form!
Set objMail.Configuration = objConfig
objMail.From = "[email protected]" ' Mittente
objMail.To = "[email protected]" ' Destinatario
objMail.Subject = Request.Form("oggetto") ' Oggetto
objMail.HTMLBody = Request.Form("messaggio") ' Messaggio
objMail.Send()
Set objMail = Nothingecco l'indirizzo dove l'ho uppata http://www.la-maglia-rosanero.com/contattami.asp
Set objMail.Configuration = objConfig ** objMail.From = Request.Form("email") ' Mittente** objMail.To = "[email protected]" ' Destinatario objMail.Subject = Request.Form("oggetto") ' Oggetto objMail.HTMLBody = Request.Form("messaggio") ' Messaggio objMail.Send() Set objMail = Nothing
-
benissimo....
era sbagliato alloralo script iniziale :=altra cosa e poi ti lascio in pace.....
...siccome nell'attuale pagine contattami.htm che ho nel sito ho pr 2 e questa pagina è invece in asp come faccio per non perdere il pr?
-
@La Maglia Rosanero said:
benissimo....
era sbagliato alloralo script iniziale :=altra cosa e poi ti lascio in pace.....
...siccome nell'attuale pagine contattami.htm che ho nel sito ho pr 2 e questa pagina è invece in asp come faccio per non perdere il pr?Il problema è delicato. Ti consiglio di scomporre l'applicazione in due pagine utilizzando la vecchia contatti.htm per il form e la nuova per il codice di invio.
Ad ogni modo potrai trovare qualche informazione in merito nel forum dedicato al posizionamento che ti invito a consultare.
Ciao