Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117

    Problema con headers mail html

    Ciao ragazzi ho uno strano problema... :/ a dire il vero è la prima volta che mi succede...
    Questo è il codice che uso per mandare la mia mail in html:

    Codice PHP:
        $nome=$_POST['nome'];
        
    $email=$_POST['email'];
        
        
    $messaggio=$_POST['messaggio'];
        
    $messaggio=htmlspecialchars($messaggio);
        
    $messaggio=nl2br($messaggio);
        
    $messaggio=stripslashes($messaggio);
        
        
    $mailSito="info@miosito.com";

        
    $linkSito="www.miosito.com";
        
    $nomeSito="Nome del mio sito";
        
        
    $headers 'Content-type: text/html; charset=iso-8859-1\r\n';
        
    $headers.='From: '$nomeSito .' <'$email .'>\r\n';
            
        
    //Mail verso il sito
        
    $contenuto=//qui ci metto tutto il codice html della mail;
        
        
    if(mail($mailSito,"Messaggio dal sito",$contenuto,$headers)){
            
    header("Location: ../index.php?page=contatti&msg=ok");
        }else{
            
    header("Location: ../index.php?page=contatti&msg=no");
        } 
    Ora...la mail la manda...la visualizza benissimo (in html), mi conferma l'invio passando la var $_GET['msg']=ok però è come se gli header non fossero letti se non nella prima riga....

    Mi spiego meglio:
    Codice PHP:
        $headers 'Content-type: text/html; charset=iso-8859-1\r\n';
        
    $headers.='From: '$nomeSito .' <'$email .'>\r\n'
    La mail mi arriva ma come mittente non mi legge il secondo header...

    Allo stesso modo se metto:

    Codice PHP:
    $headers  'MIME-Version: 1.0' "\r\n";
            
    $headers .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";
            
    $headers.='From: '$nomeSito .' <'$email .'>\r\n'
    [/PHP]

    La mail arriva ma il mittente è sempre quello del server del mio host web e non me la visualizza in html ma mi visualizza il codice puro (come se appunto leggesse il primo header e non gli altri 2)...

    Cosa sto sbagliando?

  2. #2
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Ciao, utilizza la classe phpMailer(la trovi qui) e non avrai tutti questi problemi di header.

  3. #3
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    ok grazie! Gli darò uno sguardo!
    Essendo però nella m****a perchè ho perso davvero ore dietro a sto cavolo di problema (che secondo me non ha motivo d'essere giuro xD) posso chiederti se hai qualche idea riguardo il mio problema? perchè non vorrei perdere altre 2 ore per capire come funziona la classe che mi hai suggerito (che cmq mi studierò con più calma nel caso!)!

    Anche solo per curiosità...a me sembra tutto giusto ciò che ho scritto

    ora vedo la classe!

  4. #4
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    puo' capitare che se il nome nell'header non rispetta lo std rfc ti succeda quello che dici.
    inolte e' un header incompleto, manca return path e reply to.

    Usare la classe phpmailer e' una buona soluzione in quanto e' abb comoda da usare per gestire l'invio delle email.
    Inoltre abituati ad usare le codifiche utf8 piuttosto delle iso ... etc...

    Per il resto si usa la phpmailer o altra classe similare.

  5. #5
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Si si sicuramente la userò in futuro è solo che ora ho un problema di tempo e non essendo praticissima di php ci metterei troppo a usarla credo xD

    Il nome del sito è normale...non ha caratteri particolari (tipo: Veronica Website)

  6. #6
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Quando ho dubbi la prima cosa che faccio e consultare la doc ufficiale : http://php.net/manual/en/function.mail.php


    Poi nel caso provare questo header :

    Codice PHP:
    $headers  "From: My site<noreply@example.com>\r\n";
    $headers .= "Reply-To: [email]info@example.com[/email]\r\n";
    $headers .= "Return-Path: [email]info@example.com[/email]\r\n";
    $headers .= 'MIME-Version: 1.0' "\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' "\r\n"
    Eventualmente con charset utf-8 se dovesse servire.

  7. #7
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    non lo concatena! c'è un errore col puntino che va staccato dal nome della variabile $header
    In poche parole prova con
    Codice PHP:
    $headers 'Content-type: text/html; charset=iso-8859-1\r\n';
        
    $headers .= 'From: '$nomeSito .' <'$email .'>\r\n'
    If you think your users are idiots, only idiots will use it. DropBox

  8. #8
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Un asintassi di questo tipo :
    Codice PHP:

    $ciao 
    "asdsad" ;
    $ciao.= "123" ;

    echo 
    $ciao
    Rispetto a :
    Codice PHP:

    $ciao 
    "asdsad" ;
    $ciao .= "123" ;

    echo 
    $ciao
    Non cambia nulla quello spazio tra varibile e opratore di concatenamento e' uno spazio non signifigcativo in quanto viene cmq rimosso a tempo di parsing.

    invece questo :
    Codice PHP:

    $ciao 
    "asdsad" ;
    $ciao . = "123" ;

    echo 
    $ciao
    causa un errore e un mancato concatenamento della stringa.

  9. #9
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    No ma infatti non c'entra nulla! Ho già provato!

    Cmq...

    Son riuscita miracolosamente ad usare la casse phpMailer ( )

    Ho solo un problema ora...
    Funziona tutto ma le lettere accentate non le sistema...eppure uso htmlspecialchars()....

    Questo è il codice
    Codice PHP:
        $nome=$_POST['nome'];
        
    $email=$_POST['email'];
        
        
    $messaggio=$_POST['messaggio'];
        
    $messaggio=htmlspecialchars($messaggio);
        
    $messaggio=nl2br($messaggio);
        
    $messaggio=stripslashes($messaggio);
        
        
    $mailSito="info@miosito.it";

        
    $linkSito="http://www.miosito.it";
        
    $nomeSito="Mio Sito Website";
        
        include_once(
    'phpMailer/class.phpmailer.php');
        
        
    $mail = new PHPMailer();
        
        
    $mail->From $mailSito;
        
    $mail->FromName $nomeSito;
        
    $mail->Subject "Email dal Sito";
        
        
    $html_body //il mio codice HTML;
        
        
    $mail->MsgHTML($html_body);
        
        
    $mail->AddAddress($email);
        
        if(
    $mail->Send()){
            
    header("Location: ../index.php?page=contatti&msg=ok");
        }else{
            
    header("Location: ../index.php?page=contatti&msg=no");
        } 

  10. #10
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Usa la codifica utf-8 . !!

    E nei titoli applica la codifica tipo quoted-printable o altra simile (io uso la base 64 se non ricordo male )

    una cosa del tipo :
    Codice PHP:
    stringToRFC$str $charset="utf-8" $enctype="b" 
        {
            if( 
    strtolower($enctype)!="b" && strtolower($enctype)!="q" 
            { 
    $enctype "b" ; }
            
            if( 
    $enctype=="b"  )
            { 
    $str base64_encode($str) ; }
            else
            { 
    $str rawurlencode($str) ; }
            
            
    $str "=?".$charset."?".strtoupper($enctype)."?".$str."?=" ;
            
            return 
    $str ;
        } 
    Coai' posso inserire tutti i caratteri che voglio nei campi from, to, reply to etc...

    UQesta e' una porzione della classe che uso (mia personale) ma dovrebbe esserci una cosa simile anche nella classe php mailer

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.