- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Tutorial] Gestione di un form mail semplice
-
Ciao a tutti... io ho avuto un problema... Ho installato easyPHP e ho copiato i file nella cartella apposita.. riesco ad accedere al file modulo.html ma quando faccio invia mi esce questo errore
Warning: mail() [function.mail]: Failed to connect to mailserver at "127.0.0.1" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\invio.php on line 28
La mail è stata inviata con successo. Grazie per averci contattatoHo provato a controllare il file php.ini ma mi pare sia corretto, cosa posso fare?
Grazie mille...
-
Ciao chronos87,
prova ad inserire ad inizio scriptini_set('SMTP','smtp.isp.ext'); ```Dove smtp.isp.ext devi sostituirlo con l'indirizzo smtp del provider della mail (esempio: per alice.it è out.alice.it). Facci sapere. :ciauz:
-
Sono riuscito a risolvere il mio problema inserendo nel file php.ini dove c'era scritto SMTP (al posto di 127.0.0.1) out.alice.it
E' per caso un problema anche se in realtà io non uso alice?!?
-
In linea teorica potrebbe darti problemi, ma se ti funziona...
L'ideale sarebbe mettere l'SMTP dell'indirizzo mail che usi per inviare la mail, in teoria dato che arriva un messaggio da mail[@]dominio.ext ma con SMTP alice.it, potresti essere scambiato per SPAM.
-
Salve ragazzi sono nuovo di qui.
Ho usato questo form e credo che funzioni tutto correttamente (almeno ho il messaggio di conferma di invio mail)
la mia domanda è: dopo quanto tempo arriva la mail dal mio indirizzo di posta elettronica?
grazie in anticipo a tutti
-
@jumpy83 said:
Salve ragazzi sono nuovo di qui.
Ho usato questo form e credo che funzioni tutto correttamente (almeno ho il messaggio di conferma di invio mail)
la mia domanda è: dopo quanto tempo arriva la mail dal mio indirizzo di posta elettronica?
grazie in anticipo a tuttiFunziona!!! non mi arrivava la mail perché c'era quella frase vicino all'indirizzo mail!
-
Ciao a tutti,
anche se questo post è piuttosto datato mi è stato molto utile ma avrei bisogno di un pò di aiuto
Partendo dalla premessa che sono un super niubbo sto provando ad inserire il modulo per la richiesta mail nel mio sito.
Ho leggermente modificato la prima parte del codice perchè non mi servivano le voci oggetto e campo per testo quindi ho lasciato solo la mail.
Sul web il modulo appare benissimo ma quando si clicca il tasto invio il riquadro del modulo diventa bianco come una pagina web che nn va e soprattutto non parte nessuna mail.
La prima domanda è: trattandosi di un sito costruito in Flash con WIX.COM io posso inserire a piacimento codici html e javascript ma il php lo riconoscerà? In sostanza io ho preso le due parti di codice, HTML e PHP, le ho modificate e le ho unite in un unico documento html. Ho fatto bene?
Vi allego il codice che ho usato. Dove sta l'errore?
HELP MEEEEEEEPS. nel codice ho tolto i www dei siti poichè non essendo utente premium non mi consente di farlo ma ovviamente nel web li ho messi
ISCRIVITI ALLA NEWSLETTER
<table>
<form action="invio.php" method="post" id="modulo">
<tr>
<td>Indirizzo email</td>
<td><label>
<input name="mail" type="text" id="mail" />
</label></td>
</tr>
<tr>
<tr>
<td><label></label>
</td>
<td><label>
<input type="submit" name="submit" id="submit"
</label></td>
</tr>
</table>
</form><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ttp://w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="ttp://w.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento senza titolo</title>
</head><body>
<?php
// indirizzo di chi riceve la mail è sottolineato ma nel codice non sottilineatelo$to = "w.yachting-experience.com";
$headers = "From: " . $_POST['mail'] . "\n";
// soggetto della mail
$subject = "Modulo proveniente da w.yachting-experience.com";// corpo messaggio
$body = "Contenuto del modulo:\n\n";$body .= "Inviata da: " . trim(stripslashes($_POST["mail"])) . "\n"; //indirizzo e-mail che manda la mail, come si vede riprende l'id del campo destinato all'inserimento della mail del mittente
// invio mail
mail($to, $subject, $body, $headers); // SE L'INOLTRO E' ANDATO A BUON FINE...echo "La mail è stata inviata con successo. Grazie per averci contattato";
} else {// altrimenti
echo "Deve compilare la form prima di inviare.";}
?>
</body>
</html>
-
Ciao a tutti e complimenti per il tutorial, l'ho trovato semplicemente perfetto e super funzionante sono riuscito a implementare tutto all'interno del mio sito.
Però mi chiedevo una cosa: è possibile inserire il campo di scelta tra più opzioni? Per capirci meglio, quelli dove si può fare una scelta premendo nel pallino e farmi arrivare la scelta anche nel body della mail?Io sto provando a integrarlo cosi nel modulo.html:
[HTML]<input type=radio name="giudizio" value="pessima">Pessima<br>
<input type=radio name="giudizio" value="mediocre">Mediocre<br>[/HTML]e nel .php:
[HTML]$body .= "Valutazione: " . trim(stripslashes($_POST["giudizio"])) . "\n"; [/HTML]Non funziona, perché quando compilo tutti i campi e provo a inviare mi esce la scritta "Deve compilare la form prima di inviare."
Come se nel controllo del $body quel campo gli desse qualche problema..Suggerimenti o soluzioni? Grazie mille in anticipo
-
Salve a tutti e grazie. Finora funziona tutto.
Vorrei sapere come si fa a sostituire la pagina "La mail è stata inviata con successo. Grazie per averci contattato" (invio.php) con un'altra pagina in html che ho preparato.
Quest'altra pagina mi serve molto perché dovrò inserirvi il codice per le conversioni di AdWords.
Grazie fin da ora!
Hikari
-
Ciao hikari,
invece di:
[php]
echo "La mail è stata inviata con successo. Grazie per averci contattato";
[/php]
Puoi mettere:
[php]
header('Location: mia_pagina.html');
exit;
[/php]E farà il redirect ad una pagina, in cui puoi mettere ciò che vuoi.
-
Ciao e grazie.
Ho inserito il codice, ma il redirect va ancora alla pagina "invio.php", che resta in bianco.
Ho provato a mettere, dopo "Location", sia una pagina della stessa directory, sia un'altra pagina con l'url completo con l'http, il www e il .html finale, ma niente...
L'email, invece mi arriva correttamente nella casella destinatario.
-
Puoi postare il codice che hai utilizzato e dà questo problema?
-
...e già che ci sono ne è saltata fuori un'altra: facendo le varie prove con un mio dominio, l'email arriva; adesso ho provato a caricare lo stesso file nel domino del cliente e... non arriva l'email... :bho:
L'hosting del cliente è register, con il piano "base": potrebbe essere che non supporta php?
Grazie ancora.
H.
-
certo!
<body>
<?php
// indirizzo di chi riceve la mail è sottolineato ma nel codice non sottilineateloif ((trim($_POST['object']) != "") && (trim($_POST['body']) != "")) { //questo fa si che se i campi -oggetto- e "messaggio" sono vuoti la form non invia nessuna mail
$to = "[email protected]";
$headers = "From: " . $_POST['mail'] . "\n";
// soggetto della mail
$subject = "Info about ...";// corpo messaggio
$body = "Contenuto del modulo:\n\n";$body .= "Inviata da: " . trim(stripslashes($_POST["mail"])) . "\n"; //indirizzo e-mail che manda la mail, come si vede riprende l'id del campo destinato all'inserimento della mail del mittente
$body .= "Nome: " . trim(stripslashes($_POST["object"])) . "\n"; //oggetto del messaggio
$body .= "testo: " . trim(stripslashes($_POST["body"])) . "\n"; //messaggio// invio mail
mail($to, $subject, $body, $headers); // SE L'INOLTRO E' ANDATO A BUON FINE...[LEFT]header('Location: mia_pagina.html');
exit;[/LEFT]} else {// altrimenti
echo "Please get back and retry";}
?>
</body>
-
Per la pagina bianca mi sembra impossibile, il codice è corretto, non dovrebbe dare problemi.
Oggi come oggi è abbastanza impossibile che un hosting non supporti php, ma in ogni caso devi vedere il tuo piano hosting cosa fornisce. Per l'email che non arriva, potrebbe essere semplicemente che finisce in spam.
-
Grazie comunque, Thedarkita.
Ahimè, i miei 2 problemi restano irrisolti...
La pagina bianca persiste; l'hosting del cliente supporta php ma l'email non arriva. Ho provato a cambiare anche indirizzo destinatario (prendendo in considerazione lo spamming), ma niente: dal mio hosting, l'email arriva ovunque, da register, non arriva...
-
La pagina bianca te la dà con qualsiasi browser, e su entrambi gli hosting?
-
@Thedarkita said:
La pagina bianca te la dà con qualsiasi browser, e su entrambi gli hosting?
sì, provato con explorer, firefox, chrome (mi manca solo safari...) e il reindirizzamento non lo fa, va sempre alla pagina invio.php bianca...
Inoltre, dal mio hosting, almeno l'email arriva; da register, non arriva proprio...
-
Per il redirect ho visto ora il problema, mandi un output prima di fare il redirect, quindi dà problemi:
All'inizio del codice della pagina, proprio alla prima riga aggiungi:
[php]
<?php
ob_start("ob_gzhandler");
?>
[/php]
-
@Thedarkita said:
Per il redirect ho visto ora il problema, mandi un output prima di fare il redirect, quindi dà problemi:
All'inizio del codice della pagina, proprio alla prima riga aggiungi:
[php]
<?php
ob_start("ob_gzhandler");
?>
[/php]Ciao Thedark,
ti propongo per la beatificazione ... adesso funziona!
Mi restava solo il problema n.2 (= non funziona con altro hosting), ma ho risolto anche quello: il provider mi ha risposto che nel piano hosting del cliente non è previsto PHP (è un piano "base che più base non si può"...).
Grazie ancora!!!!
Hikari