- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- Invio email in ASp..mi date un consiglio
-
Ho dovuto spostare parte della discussione sul forum dedicato all'Hosting perchè in questa sezione cerchiamo di rimanere nell'ambito delle pagine ASP. Se usciamo fuori dall'argomento andiamo off-topic.
I messaggi che non trovi più puoi trovarli in questa nuova discussione che ho aperto qui: http://www.giorgiotave.it/forum/hosting-housing-e-domini/16900-sono-su-register-hosting-personal-ma-ora-ho-bisogno-del-supporto-asp.html
Ciao
-
scusate se uso questo tread ma è attinente
in questo pezzo di script asp
<%@LANGUAGE = JScript%>
<%
// Recupero i dati dal modulo
var nome = new String(Request.Form("nome"));
var email = new String(Request.Form("email"));
var messaggio = new String(Request.Form("messaggio"));// Effettuo un banale controllo sulla validità dei campi
if (nome == "" || email == "" || messaggio == "") {
Response.Write("ERRORE: Tutti i cami sono obbligatori");
Response.End;
}// Creo l'oggetto (o classe) CDONTS.NewMail
var OggettoCDONTS = new ActiveXObject("CDONTS.NewMail");
OggettoCDONTS.From = email; // Mittente
OggettoCDONTS.To = "[email protected]"; // Destinatario (inserisci la tua email)
OggettoCDONTS.Subject = "Messaggio da " + nome; // Oggetto
OggettoCDONTS.Body = messaggio; // Corpo
OggettoCDONTS.Send(); // Invio la mailResponse.Write("Email inviata con successo!");
%>mi da errore nella linea 15 cioè
var OggettoCDONTS = new ActiveXObject("CDONTS.NewMail");ora non capisco perchè mi da l'errore....l'unica cosa che mi viene in mente è che in questo script non ho modo di mettere l'smtp del mio server.....quindi l'unico errore che mi viene in mente è questo ma non so dove poterlo mettere l'smpt!
-
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