View Full Version : Form E-mail (PHP)
Salve ragazzi.
Cerco di creare un Form E-mail in php (il provider è www.extremis.it).
Andando sull'area SUPPORTO SOFTWARE -> Form E-mail, mi trovo la soluzione su come creare questo benedetto modulo che mi fa sclerare da giorni. Le ho provate tutte e adesso mi sono cimentato su quanto mi raccomando il provider.
Non mi da nessun errore, mi dice sempre che l'e-mail è stata inviata, ma non arriva NULLA nella mia casella di posta.
Dedicandomi a quanto segue:
modulo.htm
<form method="post" action="invio.php">
<input type="text" name="email">
<input type="text" name="nome">
<input type="text" name="oggetto">
<textarea name="testo"></textarea>
<input type="hidden" name="to">
<input type="submit" value="Invia e-mail!">
</form>
invio.php
<?
mail ( $email, $oggetto, $testo, $nome )
?>
Questi sono i due documenti creati per l'invio dell'e-mail direttamente dal web.
Mi sono subito accorto che non sapevo dove mettere l'indirizzo e-mail dove destinare l'e-mail compilata dai miei clienti. Allora ho aggiunto nel file invio.php
<?
$indirizzo="il_mioindirizzo@alice.it";
{
mail ( $email, $oggetto, $testo, $nome )
?>
E adesso mi da errore. Insomma... prima l'avevo fatto io, mi diceva sempre che l'inviava e non mi arriva mai nulla, adesso ho provato a seguire la guida del provider e mi sono perso.
Per favore, aiutatemi; grazie anticipatamente!
invio.php
<?
mail ( $email, $oggetto, $testo, $nome )
?>No no, mail() non è da usare così!!!
Vedi <qui> (http://it.php.net/manual/en/function.mail.php) sul manuale.
C'è un mio esempio in <questo> (http://www.hwupgrade.it/forum/showthread.php?t=1381561) thread. Non era per un form di email generico ma era "specializzato" per una mail preconfezionata. Ma il succo tanto è lo stesso ....
lnessuno
19-06-2007, 15:59
io ho questo scriptino:
$mittente = sicur_email($_POST["mittente"]);
$oggetto = sicur_stringa($_POST["oggetto"]);
$testo = sicur_stringa($_POST["testo"]);
if ($mittente AND $oggetto AND $testo):
mail($email, $oggetto, $testo,
"From: ".$mittente."\r\n" .
"Reply-To: webmaster@{$_SERVER['SERVER_NAME']}\r\n" .
"X-Mailer: PHP/" . phpversion()) or die ("Email NON inviata");
echo "<h4>Email inviata con successo.</h4>";
endif;
?>
<form action='.' method='post'>
<div style='text-align:center;'>
Mittente (il tuo indirizzo email):<br />
<input type='text' name='mittente' value='' style='width:300px;' /><br /><br />
Oggetto:<br />
<input type='text' name='oggetto' value='' style='width:300px;' /><br /><br />
Testo: <br />
<textarea cols='20' rows='5' name='testo' style='width:300px;'></textarea><br /><br />
<input type='submit' name='invia' value='Invia' />
</div>
</form>
fa il suo dovere:stordita:
io ho questo scriptino:
$mittente = sicur_email($_POST["mittente"]);
$oggetto = sicur_stringa($_POST["oggetto"]);
$testo = sicur_stringa($_POST["testo"]);
if ($mittente AND $oggetto AND $testo):
mail($email, $oggetto, $testo,
"From: ".$mittente."\r\n" .
"Reply-To: webmaster@{$_SERVER['SERVER_NAME']}\r\n" .
"X-Mailer: PHP/" . phpversion()) or die ("Email NON inviata");
echo "<h4>Email inviata con successo.</h4>";
endif;
?>
<form action='.' method='post'>
<div style='text-align:center;'>
Mittente (il tuo indirizzo email):<br />
<input type='text' name='mittente' value='' style='width:300px;' /><br /><br />
Oggetto:<br />
<input type='text' name='oggetto' value='' style='width:300px;' /><br /><br />
Testo: <br />
<textarea cols='20' rows='5' name='testo' style='width:300px;'></textarea><br /><br />
<input type='submit' name='invia' value='Invia' />
</div>
</form>
fa il suo dovere:stordita:
Grazie mille, ma devo incollare questo script in un file PHP? Dove metto l'indirizzo a cui viene destinata l'e-mail?
No no, mail() non è da usare così!!!
Vedi <qui> (http://it.php.net/manual/en/function.mail.php) sul manuale.
C'è un mio esempio in <questo> (http://www.hwupgrade.it/forum/showthread.php?t=1381561) thread. Non era per un form di email generico ma era "specializzato" per una mail preconfezionata. Ma il succo tanto è lo stesso ....
Ho usato la funziona mail() come nel manuale, ma non è arrivato ancora nulla; sono una schiappa. E' la prima volta che cerco di utilizzare il php. Mi scuso.
Io ho fatto così:
<?php
// The message
$message = "Line 1\nLine 2\nLine 3";
// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70);
// Send
mail('il_mio_indirizzo@alice.it', 'My Subject', $message);
?>
Please Help Me... guidatemi! :(
lnessuno
19-06-2007, 16:42
Grazie mille, ma devo incollare questo script in un file PHP? Dove metto l'indirizzo a cui viene destinata l'e-mail?
basta copiare il tutto in una pagina php e funziona... il destinatario è la variabile $email, quindi devi aggiungere
$email = "tuo@indirizzo.com"; all'inizio dello script
ah! devi togliere i vari secur_email e secur_stringa, sono funzioni che utilizzo io ma a te non servono :p
basta copiare il tutto in una pagina php e funziona... il destinatario è la variabile $email, quindi devi aggiungere
$email = "tuo@indirizzo.com"; all'inizio dello script
ah! devi togliere i vari secur_email e secur_stringa, sono funzioni che utilizzo io ma a te non servono :p
Grazie sei gentilissimo, spero di risolvere perkè è una funziona che mi serve urgentemente. :)
quindi basterebbe mettere "$email = "indirizzo@......"
Provo e tra poco ti faccio sapere, thanks!
Questa è la mia pagina: Non trovo la variabile e-mail; un'altra cosa, ma l'action form a cosa serve? Io lo devo inserire?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Richiesta Catalogo</title>
</head>
<body>
<? $mittente = sicur_email($_POST["mittente"]);
$oggetto = sicur_stringa($_POST["oggetto"]);
$testo = sicur_stringa($_POST["testo"]);
if ($mittente AND $oggetto AND $testo):
mail($email, $oggetto, $testo,
"From: ".$mittente."\r\n" .
"Reply-To: webmaster@{$_SERVER['SERVER_NAME']}\r\n" .
"X-Mailer: PHP/" . phpversion()) or die ("Email NON inviata");
echo "<h4>Email inviata con successo.</h4>";
endif;
?>
<form action='.' method='post'>
<div style='text-align:center;'>
Mittente (il tuo indirizzo email):<br />
<input type='text' name='mittente' value='' style='width:300px;' /><br /><br />
Oggetto:<br />
<input type='text' name='oggetto' value='' style='width:300px;' /><br /><br />
Testo: <br />
<textarea cols='20' rows='5' name='testo' style='width:300px;'></textarea><br /><br />
<input type='submit' name='invia' value='Invia' />
</div>
</form>
</body>
</html>
Ricordatevi che in php.ini su Windows, va specificato il server smtp da usare...
Mi sono perso...
Ricordatevi che in php.ini su Windows, va specificato il server smtp da usare...
Cosa vuol dire? Devo creare un altro file? Io sono completamento nuovo sul linguaggio php.
"$email = "tuo@indirizzo.com"; all'inizio dello script"
Lo devo aggiungere sempre tra i <body></body>? cioè dev'essere la prima riga?
Mi sono perso...
Cosa vuol dire? Devo creare un altro file? Io sono completamento nuovo sul linguaggio php.Devi andare nel file php.ini e configurare le entry (es. dal mio php.ini):
[mail function]
; For Win32 only.
SMTP = mail.tin.it
smtp_port = 25
creo un file php.ini e configuro il mio smtp?
Giusto?
Qualcuno mi aiuta sulle domande che ho posto precedentemente? Grazie ragazzi!:muro:
Come l'hai installato php in locale ? Da solo o con qualche pacchetto all-in-one ?
Il file php.ini lo dovresti aver messo dentro alla directory di Windows...ed è quello che devi modificare.
Io non ho nulla dentro il LOCAL HOST!:confused:
Ah...le pagine non le provi prima in locale ?
le mie pagine sono online, anche il modulo l'ho provato online, OVVIAMENTE! Solo che al mio sitoweb servirebbe urgentemente quell'ultima pagina, nonché il modulo da compilare. Spero di riuscirci col vostro aiuto; Grazie :)
lnessuno
20-06-2007, 09:39
non mi sembra che tu ti stia sbattendo più di tanto a cercare di capire come funziona, comunque...
<?php
$email = tua@mail.com;
$mittente = $_POST["mittente"];
$oggetto = $_POST["oggetto"];
$testo = $_POST["testo"];
if ($mittente AND $oggetto AND $testo):
mail($email, $oggetto, $testo,
"From: ".$mittente."\r\n" .
"Reply-To: webmaster@{$_SERVER['SERVER_NAME']}\r\n" .
"X-Mailer: PHP/" . phpversion()) or die ("Email NON inviata");
echo "<h4>Email inviata con successo.</h4>";
endif;
?>
<form action='.' method='post'>
<div style='text-align:center;'>
Mittente (il tuo indirizzo email):<br />
<input type='text' name='mittente' value='' style='width:300px;' /><br /><br />
Oggetto:<br />
<input type='text' name='oggetto' value='' style='width:300px;' /><br /><br />
Testo: <br />
<textarea cols='20' rows='5' name='testo' style='width:300px;'></textarea><br /><br />
<input type='submit' name='invia' value='Invia' />
</div>
</form>
dovrebbe funzionare così com'è
Non è tanto ovvio...perché solitamente un sito si prova prima in locale e poi si mette sul server quando sono complete le varie parti.
Comunque te ovviamente non puoi mettere mano al php.ini sul server, quindi devi prendere il codice lnessuno nella tua pagina php...
Mi scuso con tutti voi... ma credetemi in una settimana ho fatto milioni di prove invane.
Grazie a tutti
Dopo aver messo lo script online
Parse error: syntax error, unexpected '@' in /home/web.siti/"nomesito".it/Catalogo.php on line 10 :confused:
Ah...se non funzionasse significa che il tuo provider non prevede l'invio di mail tramite php ;)
Magari ha qualche metodo alternativo, informati con loro in tal caso.
$email = "tua@mail.com";
Devi mettere i doppi apici...
lnessuno
20-06-2007, 10:18
$email = "tua@mail.com";
Devi mettere i doppi apici...
ops vero... mi è sfuggito :D
Ho provato già con le virgolette in alto, si apre, posso compilarlo, ma appena faccio "invia" mi torna in homepage... e non arriva nulla! :(
controlla bene la action del form!
La action serve a redirigere la pagina una volta che fai la submit del form.
Ti lascio un mio script che a me funziona:
/* QUESTA PAGINA CONTIENE SEMPLICEMENTE UN FORM CON UN CAMPO DI TESTO DOVE L'UTENTE INSERISCE IL PROPRIO INDIRIZZO EMAIL */
<html>
<head>
</head>
<body>
...
<form action="invio_dati.php" method="get">
<input type="text" name="indirizzo" size="30"/>
<br/>
<br/>
<input type="submit" value="VERIFICA"/>
</form>
</body>
</html>
/* QUESTO FILE LO SALVI "invio_dati.php" E PRATICAMENTE PRENDE L'INDIRIZZO EMAIL CHE HAI INSERITO NEL FORM E GLI MANDA UNA EMAIL */
<?php
$indirizzo_recupero=$_GET['indirizzo'];
$mittente="nome mittente";
$destinatario=$indirizzo_recupero;
$messaggio="Questo è il corpo del messaggio";
$oggetto="quello che vuoi tu!";
if (mail($destinatario, $oggetto, $messaggio, "From: $mittente")) {
echo "<script type='text/javascript'>alert('Messaggio inviato con successo!');</script>";
}
else{
echo "Errore... Nessun messaggio inviato.";
}
A me funziona!Provalo
Il mio indirizzo e-mail lo devo mettere nella prima pagina (quella .htm)?
Nel file invio_dati.php, devo aggiungere dati personali miei o lo lascio invariato?
Mi hai detto che nel file .htm c'è solo un campo, ma se volessi aggiungerne altri, devo aggiungere qualcosa anche sul file .PHP?
Grazie
Si certo se vuoi altri campi nella pagina html poi li devi richiamare nella pagina invio_dati.php attraverso il loro nome.
NB: se vuoi aggiungere altri campi li devi inserire all'interno del tag <form></form>.
Per fare una prova lascia il mio script invariato.Se funziona cominci ad effettuare modifiche.
Ciao :)
Si certo se vuoi altri campi nella pagina html poi li devi richiamare nella pagina invio_dati.php attraverso il loro nome.
NB: se vuoi aggiungere altri campi li devi inserire all'interno del tag <form></form>.
Per fare una prova lascia il mio script invariato.Se funziona cominci ad effettuare modifiche.
Ciao :)
So che rompo, ma non riesco a mattere il mio indirizzo e-mail! mi aiuteresti? grazie
Scusa hai salvato il primo script e ti appare una finestra con un campo di testo?
Scusa hai salvato il primo script e ti appare una finestra con un campo di testo?
si si, certo!!!
Beh scrivici dentro il tuo indirizzo è clicca su invio.
Vai sulla tua casella di posta elettronica e controlla che ti sia arrivato un messaggio.Se non ti è arrivato vuol dire che il tuo server non supporta quella funzione
fatto, sto aspettando con le dita incrociate che arrivi qualcosa.
Una domanda... forse ho fatto una caxxxta:
Io non metto l'e-mail del provider che mi da lo spazio web, ma quella mia personale di @alice.it; può essere che l'errore sia questo?
No no deve funzionare ugualmente
Non mi è ancora arrivato nulla.
Ascolta sul sito del provider che mi da host, ci sono delle guide su questa funziona che ho già provato e non funzionano ugualmente. Sono quelle che ho postato sul primo messaggio e le ho trovate a questo link http://www.extremis.it/formmail.asp , riesci a dare un occhiata?
(cmq credo che presto mi sposterò su Aruba.it; così risolvo questi problemi del caps)
Ragazzi volevo risolvere in maniera differente se possibile:
Cercavo un modo per farsì che i clienti possano cliccare sul link "mailto:" ed ovviamente aprire il suo programma di posta elettronica ma con il contenuto e l'oggetto già scritto, c'è modo di farlo?
Grazie
lnessuno
23-06-2007, 12:40
si ma secondo me non ti conviene... troppo spammabile
http://www.google.it/search?hl=it&client=firefox-a&rls=com.ubuntu%3Aen-US%3Aofficial&hs=VSO&q=mailto+sintassi&btnG=Cerca&meta=
http://www.webfract.it/GUIDA/mailTo.htm
tu dici che il problema avuto con il form php è dovuto dall'host che mi da lo spazio? Perché più prove faccio più mi convinco di questa cosa.
lnessuno
23-06-2007, 12:47
tu dici che il problema avuto con il form php è dovuto dall'host che mi da lo spazio? Perché più prove faccio più mi convinco di questa cosa.
no non credo che il problema sia quello, penso sia un problema tuo di codice... fai copia-incolla della pagina, e al limite manda una mail al supporto tecnico. che hosting hai?
no non credo che il problema sia quello, penso sia un problema tuo di codice... fai copia-incolla della pagina, e al limite manda una mail al supporto tecnico. che hosting hai?
L'hosting è http://www.extremis.it ; questo è quello che dicono http://www.extremis.it/formmail.asp ....
Ecco i miei codici: (consigli di mummolo)
File: Catalogo.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
...
<form action="invio_dati.php" method="get">
<input type="text" name="indirizzo" size="30"/>
<br/>
<br/>
<input type="submit" value="VERIFICA"/>
</form>
</body>
</html>
File: invio_dati.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
</head>
<body>
<?php
$indirizzo_recupero=$_GET['indirizzo'];
$mittente="nome mittente";
$destinatario=$indirizzo_recupero;
$messaggio="Questo è il corpo del messaggio";
$oggetto="quello che vuoi tu!";
if (mail($destinatario, $oggetto, $messaggio, "From: $mittente")) {
echo "<script type='text/javascript'>alert('Messaggio inviato con successo!');</script>";
}
else{
echo "Errore... Nessun messaggio inviato.";
}
?>
</body>
</html>
Mi sembra corretto, ma hai qualche errore oppure lo invia, ma non ricevi ?
Prova ad inviarlo sulla mail del provider dello spazio web...
Prova inoltre a mettere come mittente l'indirizzo email del provider dello spazio web...
Invia sempre correttamente... con qualsiasi prova fatta, anche con quest'ultima, ma non arriva MAI nulla.
dici di cambiare $mittente="nome mittente"; con $mittente="miaemail@e-mail.it" nel file .php?
Comunque, appena possibile vi offro una birra fresca, siete gentilissimi!!!!
lnessuno
25-06-2007, 11:23
Invia sempre correttamente... con qualsiasi prova che io ho fatto, anche con quest'ultima, ma non mi arriva MAI nulla.
dici di cambiare $mittente="nome mittente"; con $mittente="miaemail@e-mail.it" nel file .php?
Comunque, appena possibile vi offro un birra fresca, siete gentilissimi!!!!
quello probabilmente è da fare, si
(e anche la birra direi che aiuterebbe molto :D)
ragazzi ma si deve installare qualcosa all'interno del mio spazio web?
ragazzi ma si deve installare qualcosa all'interno del mio spazio web?
No...
Magicamente risolto. L'e-mail di Alice.it e hotmail.it/com... non ricevono da form. Con quella di NGI.IT invece ricevo tutto perfettamente. Cmq poi ho creato io un form email in php. Siete stati tutti gentilissimi e disponibili. Grazie davvero. Complimenti.
Ragazzi, se dal form voglio ricevere un file (testo o immagine), come faccio?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.