Problema phpmailer,jquery e smtp

lorisllm

Nuovo Utente
4 Feb 2015
14
0
0
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:
PHP:
<center>
<h1>Contattatemi per qualsiasi dubbio, informazioni...ect......    </h1></center>

<form id="formail" method="post" action="">
          
    <p>&nbsp;</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? &nbsp; 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._-][email protected][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);
    }
    });
}
e infine una pagina php per l'invio delle mail:
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][email protected][/email]";
$to = "mia [email][email protected][/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>";
}
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:
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][email protected][/email]";
$to = "mia [email][email protected][/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 = '[email protected]'; //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>";

    }
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
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
a parte il protocollo ssl richiesto per Gmail è come la uso io e funziona
l'unica cosa che non vedo è dove/come valorizzi la variabile $body
 
Discussioni simili
Autore Titolo Forum Risposte Data
A problema phpmailer PHP 32
L invio smtp con phpmailer - problema invia due volte la email allo stesso utente PHP 0
L problema classe phpmailer con la mia classe clsMail PHP 2
G problema con phpmailer 5.2.1 PHP 1
A problema con phpmailer PHP 10
catellostefano Problema con la classe class.phpmailer.php PHP 5
C problema seo + cerco esperto SEO e Posizionamento 1
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
A Problema, non so, di scale() o transform, oppure altro? HTML e CSS 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
I PROBLEMA: Sostituzione sito XAMPP E-Commerce 0
T problema data 30/11/-1 PHP 0
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Y Problema incolonnamento tabella PHP 7
S problema salvataggio immagini Photoshop 0
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
D problema php mysql PHP 1
D problema php mysql PHP 1
M Problema Wi-Fi Linux Linux e Software 0
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
Daniele_Carrara Problema Aperture Mailup Email Marketing 5
F PROBLEMA ACCESSO INSTAGRAM Discussioni Varie 2
R Problema connessione db PHP 7
M problema if PHP 2
G Problema con Get page PHP 4
N Problema passaggio variabili tra pagine PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 1
H problema carrello woocommerce PHP 2
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
M Problema su query JOIN in tre tabelle PHP 0
S Problema esportazione tabelle Mysql in Excel PHP 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
M Problema su update di 3 tabelle PHP 1
T problema con select dinamica con jquery Javascript 0
A Problema checkout carrello php PHP 2

Discussioni simili