Buongiorno a tutti.....
Ho un problema sul mio sito sulla spedizione di mail da una pagina di contatto..
utilizzo questo codice sulla pagina html per la creazione dei pulsanti e inserimento del testo :
Codice PHP:
e infine una pagina php per l'invio delle mail:
Codice PHP:
con questa funziona solamente che le mail arrivano in ritardo e per questo volevo passare attraverso un server smtp di gmail...
volevo usare questo file al posto del php precedente:
Codice PHP:
in questo modo qua la mail non viene inviata anzi...
se il body del messaggio lo lascio vuoto mi viene restituito l'errore che il body è vuoto e la mail non è stata inviata...ma se metto qualcosa sul body non mi viene restituito nulla...
Riuscite a darmi una mano?
grazie a tutti
Ho un problema sul mio sito sulla spedizione di mail da una pagina di contatto..
utilizzo questo codice sulla pagina html per la creazione dei pulsanti e inserimento del testo :
Codice PHP:
PHP:
<center>
<h1>Contattatemi per qualsiasi dubbio, informazioni...ect...... </h1></center>
<form id="formail" method="post" action="">
<p> </p>
<p><span class="required">*</span>Nome e Cognome:
<input type="text" id="nome" name="nome2" value="" />
<br />
</p>
<p><span class="required">*</span>E-mail:
<input type="text" id="email" name="email2" value="" />
<br />
</p>
<p>Indirizzo:
<input type="text" id="indirizzo" name="indirizzo2" value="" /><br />
</p>
<p>Città:
<input type="text" id="citta" name="città2" value="" /><br />
</p>
<p><span class="required">*</span>Spazio per richiesta informazioni: </p>
<p>
<textarea name="messaggio" cols="50" rows="5" id="messaggio"></textarea>
</p>
<p><b><span class="required">*</span>Accetti le condizioni? SI <input name="trattamento_dati" id="dati"type="radio" value="accetto" >
NO <input type="radio" name="trattamento_dati" value="non_accetto" checked>
</b></p>
<p><br />
</p>
<div id="risposta">
</div>
<input name="invia" type="submit" id="invia" form="formail" value="Invia" />
</form>
Oltre a questo ho un file con il seguente codice di controllo:
Codice PHP:
$(document).ready(function(){
$("#invia").click(function(){
//Recuperiamo tutte le variabili
var valid = '';
var isr = ' è richiesto.</p>';
var name = $("#nome").val();
var email = $("#email").val();
var indirizzo = $("#indirizzo").val();
var citta = $("#citta").val();
var messaggio = $("#messaggio").val();
var dati = $("input[type=radio][name=trattamento_dati]:checked").val();
//Eseguiamo una serie di controlli
if (name.length<1) {
valid += '<p>Un nome valido'+isr;
}
if (!email.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) {
valid += '<p>Un indirizzo e-mail valido'+isr;
}
if (messaggio.length<1) {
valid += '<p>Un messaggio valido' +isr;
}
if(dati == 'non_accetto'){
valid += '<p>Accetta le condizioni';
}
//Se i controlli non vengono superati, appare il messaggio di errore.
if (valid!='') {
$("#risposta").fadeIn("slow");
$("#risposta").html("<p><b>Errore:</b></p>"+valid);
$("#risposta").css("background-color","#ffc0c0");
}
//Se i controlli vengono superati, compare un messaggio di invio in corso
else {
var datastr ='name=' + name + '&email=' + email + '&indirizzo=' + indirizzo + '&citta=' + citta + '&messaggio=' + encodeURIComponent(messaggio);
$("#risposta").css("display", "block");
$("#risposta").css("background-color","#FFFFA0");
$("#risposta").html("<p>Invio del messaggio in corso..<br /></p>");
$("#risposta").fadeIn("slow");
setTimeout("send('"+datastr+"')",2000);
}
return false;
});
});
//Creazione della funzione di invio. Si baserà sul nostro file php "mail.php".
function send(datastr){
$.ajax({
type: "POST",
url: "contattami.php",
data: datastr,
cache: false,
success: function(html){
$("#risposta").fadeIn("slow");
$("#risposta").html(html);
$("#risposta").css("background-color","#0EE570");
setTimeout('$("#risposta").fadeOut("slow")',10000);
}
});
}
Codice PHP:
PHP:
<?php
//Recuperiamo tutte le variabili
$mail = $_POST['email'];
$name = $_POST['name'];
$indirizzo = $_POST['indirizzo'];
$citta = $_POST['citta'];
$text = $_POST['messaggio'];
$ip = $_SERVER['REMOTE_ADDR'];
$subject = "".$name." vuole un informazione...";
//Qui andrà inserito il tuo indirizzo e-mail
$from = "mia [email]mail@miodominio.it[/email]";
$to = "mia [email]mail@gmail.com[/email]";
$ora = date ("H:i:s");
$data = date ("d/m/Y");
//Creazione del mesaggio da inviare
$message = "Hai ricevuto una e-mail da: <strong>".$name."</strong>, <strong>".$mail."</strong> il $data alle $ora.<br /><br />";
$message .= "Indirizzo: <strong>".$indirizzo."</strong><br /><br />";
$message .= "Città: <strong>".$citta."</strong><br /><br />";
$message .= "Messaggio: <strong><br />".$text."</strong><br /><br />";
$message .= "IP: ".$ip."<br />";
$headers = "From: $from \n";
$headers .= "Reply-To: $from \n";
$headers .= "MIME-Version: 1.0 \n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1 \n";
//Se l'e-mail viene spedita correttamente, compare un messaggio di avvenuto invio
if(mail($to, $subject,$message, $headers)){
echo "<p>Messaggio inviato con successo</p>";
}
//Altrimenti un messaggio di errore
else{
echo "<p>Ci sono stati degli errori nell'invio della e-mail.</p>";
}
volevo usare questo file al posto del php precedente:
Codice PHP:
PHP:
<?php
//Recuperiamo tutte le variabili
$mail = $_POST['email'];
$name = $_POST['name'];
$indirizzo = $_POST['indirizzo'];
$citta = $_POST['citta'];
$text = $_POST['messaggio'];
$ip = $_SERVER['REMOTE_ADDR'];
$subject = "".$name." vuole un informazione...";
//Qui andrà inserito il tuo indirizzo e-mail
$from = "mia [email]mail@miodominio.it[/email]";
$to = "mia [email]mail@gmail.com[/email]";
$ora = date ("H:i:s");
$data = date ("d/m/Y");
require_once('class.phpmailer.php');//includiamo la classe
$from_name = "Nome del mittente";
$mail = new PHPMailer(); // creiamo l'oggetto
$mail->IsSMTP(); // abilitiamo l'SMTP
$mail->SMTPDebug = 0; // debug: 1 = solo messaggi, 2 = errori e messaggi
$mail->SMTPAuth = true; // abilitiamo l'autenticazione
$mail->SMTPSecure = 'ssl'; // abilitiamo il protocollo ssl richiesto per Gmail
$mail->Host = 'smtp.gmail.com'; // ecco il server smtp di google
$mail->Port = 465; // la porta che dobbiamo utilizzare
$mail->Username = 'nomimio@gmail.com'; //email del nostro account gmail
$mail->Password = 'password_gmail'; //password del nostro account gmail
$mail->SetFrom($from, $from_name);
$mail->Subject = $subject;
$mail->Body = $body;
$mail->IsHTML(true);
$mail->AddAddress($to);
if(!$mail->Send()) {
$error = 'errore mail: '.$mail->ErrorInfo;
echo "<p>Ci sono stati degli errori nell'invio della e-mail.</p>";
echo $error;
} else {
$error = 'Messaggio inviato!';
echo "<p>Messaggio inviato con successo</p>";
}
se il body del messaggio lo lascio vuoto mi viene restituito l'errore che il body è vuoto e la mail non è stata inviata...ma se metto qualcosa sul body non mi viene restituito nulla...
Riuscite a darmi una mano?
grazie a tutti
Ultima modifica di un moderatore: