Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it L'avatar di Paperino78
    Registrato dal
    Aug 2012
    residenza
    Milano
    Messaggi
    71

    phpmailer e invio mail da form

    Buongiorno, vengo al dunque. Sto sistemando un sito web e dopo aver fatto un form normalissimo con controllo mail ed invio con la funzione mail() tutto ok. Volevo inserire il campo bcc ma non riuscendo mi hanno consigliato di passare a phpmailer. Configurato tutto ma nonostante questo ho l'ok dal modulo php quindi mai linviata ma di fatto non arriva ne a me ne al mittente. vi allego il codice php
    Codice PHP:
    <?php function mailMsg ($status) {     header('Location:contattiprova.php?status=' .$status);         exit; }      if(isset($_POST['button'])) {         $nome $_POST['name'];         $mittente $_POST['mittente'];         $testo $_POST['messagge'];         $azienda $_POST['azienda'];                                   $nome htmlspecialchars(addslashes ($nome));         $mittente htmlspecialchars(addslashes ($mittente));         $testo htmlspecialchars(addslashes ($testo));         $azienda htmlspecialchars(addslashes ($azienda));                  $time date('Y,j H:i:s'$_SERVER['REQUEST_TIME']);                  define("EOL""rn");                   //        $validEmail = "^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$";          if(empty($nome) && empty($mittente) && empty($testo)){         mailMsg(Fn);         } if (!filter_var($mittente,FILTER_VALIDATE_EMAIL)){ mailMsg(Fm);         } else {         $messagge = "Inviata da.\n Nome:".$nome."\n Società:".$azienda."\n E-mail:".$mittente."\n Messaggio:".$testo."         \n".$_SERVER['HTTP_USER_AGENT'];"\n".$_SERVER['REMOTE_ADDR']."n".$time;                  //Includo la classe phpmailer                         require_once ("class.phpmailer.php");         //Instanzo la classe         $mail = new PHPmailer();         $mail->IsSMTP();         $mail->Host = "smtp.mio.it";                  //Definisco el variabili e le intestazioni della mail         $mail->From = "io@gmail.com";         $mail->FromName = "me";         $mail->Sito = "www.me.com";         $mail->AddBcc = ($mittente);         $mail->Azienda = ($azienda);         $mail->Messaggio = ($testo);                  if(!$mail->Send()){ //errore di invio              echo "C'è stato un errore nell'invio della mai. Riprova più tardi";          }else{ //invio avvenuto              echo "Grazie! La mail è stata inviata, la contatteremo al più presto.";          }          mailMsg (T);         }}  else { mailMsg(F); }       ?>
    Consigli?

  2. #2
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    Mi rifiuto di leggere codice su 1 singola riga..
    ti posso dire che phpmailer ha un debugger smtp integrato, basta mettere il parametro SMTPdebug (o nome simile) a 1 o true e ti stampa un log smtp. così vedi se l'email parte e eventualmente dove sta l'errore
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  3. #3
    Utente di HTML.it L'avatar di Paperino78
    Registrato dal
    Aug 2012
    residenza
    Milano
    Messaggi
    71
    Be in effetti hai ragione leggerlo su una riga è da matti ma me lo ha preso così, sicuramente ho sbagliato qualcosa. Comunque proverò il debug e speriamo in bene. Grazie

    P.S Inserito il debug come da wiki ma non capisco come poter visualizzare il risultato. debug messo su valore 1.

  4. #4
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    mi sembra di ricordare che faccia delle "echo" dirette. Quindi dovreste trovartele video. Mi sembra di ricordare che ero stato costretto a fare una chiamata ajax che convogliava l'output in una taxtarea appunto perchè erano delle echo dirette e non riuscivo a immagazzinare l'output in una variabile
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  5. #5
    Utente di HTML.it L'avatar di Paperino78
    Registrato dal
    Aug 2012
    residenza
    Milano
    Messaggi
    71
    Grazie per l'info ma ho deciso di tornare al vecchio sistema mail(). Ora funziona tutto anche ilbcc che cercavo. L'unica cosa che mi rimane è proprio riuscire a risolvere questo problema e il redirect che vorrei fare qua
    Codice PHP:
    <?php 
    $status 
    = @$_GET['status']; 
    if (
    $status == 'Fv'){     echo "
    <span class='error'>I campi non devono essere vuoti.</span>"
    ;     form();     } 
    elseif (
    $status == 'Fm'){     echo "
    <span class='error'>L'Email non è valida!</span>"
    ;     form();     } 
    elseif (
    $status == 'Fn'){     echo "
    <span class='error'>Si è verificato un errore nell' invio. Riprova più tardi.</span>"
    ;     } 
    elseif (
    $status == 'T'){     echo "
    <p class='sendOk'>Grazie, il messaggio è stato inviato.
     Ti risponderemo al più presto</p>"
    ;     } 
    else {     
    form();     }     function form() {
    dopo il messaggio di ringraziamento vorrei fare il redirect sull'index. Sai come fare?

    Grazie

    P.S. spero che il codice non sia tutto su una riga

  6. #6
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    Te lo sconsiglio. phpMyMailer è il non-plus-ultra per l'invio delle email, e ha tutte le funzioni di cui hai (o avrai) bisogno. il metodo mail() fa riferimento alla macchina locale. Se sposti il sito da un'altra parte non è assolutamente detto che continui a funzionare.

    Per quanto riguarda il redirect... non puoi fare un redirect brutale perchè il visitatore deve "avere il tempo" di leggere il messaggio di ringraziamento. Quindi io farei semplicemente un pulsante "Clicca qui per tornare..." e sarà l'utente che navigherà verso altre pagine.

    Oppure puoi fare un redirect temporizzato (anche se a me non piacciono per niente). Qui allora non si parla più di php ma di javascript.

    setTimeout("window.location = il_tuo_url", 5000)

    Con questa istruzione fai un redirect js dopo 5 secondi
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  7. #7
    Utente di HTML.it L'avatar di Paperino78
    Registrato dal
    Aug 2012
    residenza
    Milano
    Messaggi
    71
    Ok era carino phpmailer ma ho riscontrato molti problemi ma nessuno mi ha saputo aiutare. Quanto al redirect ho fatto così
    Codice PHP:
    elseif ($status == 'T'){     
    echo 
    "<html><head><title></title></head><body>";     
    echo 
    '<meta http-equiv="refresh" content="3;url=index.html">';     
    echo 
    "
    <p class='sendOk'>Grazie, il messaggio è stato inviato.
     Ti risponderemo al più presto</p>"
    ;     
    echo 
    "</body></html>"
    lo so che non è il massimo sarebbe meglio una pagina di ringraziamenti ma io fino a 3 mesi fa non conoscevo nulla ne di html ne di php ne js.

    Tu sapresti darmi una mano con phpmailer?

  8. #8
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    ? te la stavo dando la mano.. posta il risultato del debugger
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  9. #9
    Utente di HTML.it L'avatar di Paperino78
    Registrato dal
    Aug 2012
    residenza
    Milano
    Messaggi
    71
    Non ho avuto nessun risultato. E' questo il problema. Debugger impostato su 1 e poi su 2 ma senza risultato. Se sai dirmi dove andare a prendere il log, posso postartelo.

  10. #10
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    anche a questo ho già risposto
    $oggetto_phpmailer->SMTPDebug = true;
    stampa il risultato con degli "echo", quindi te li dovresti ritrovare a video.
    magari non li vedi perchè fai un redirect, ricarichi la pagina e quindi "si perdono"
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.