• User Attivo

    Mail di testo puro, senza HTML

    Ciao ragazzi,
    premetto che sono ignorante in PHP, quindi mi scuso se chiedo cose banali.

    Nel mio sito (in firma) ho una pagina Contatti con un modulo in flash per mandare una mail.
    Funziona bene, ma le email arrivano in HTML, io vorrei invece che fossero in normale testo.

    Il file in flash richiama un file .php, questo è il contenuto:

    <?php
    $nome = stripslashes($_POST['nome']);
    $cognome = stripslashes($_POST['cognome']);
    $mittente = stripslashes($_POST['mittente']);
    $richiesta = stripslashes($_POST['richiesta']);
    $sms = '
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Contatti</title>
    </head>
    <body style="margin:0px;">
    <table cellpadding="0" cellspacing="0" style="height:100%;width:500px;">
    <tr>
    <td style="height:100%;padding:20px;vertical-align:top;">
    <table>
    <tr><td colspan="2">
    </td>
    </tr>
    <tr><td width="110"><b>Nome:</b></td>
    <td width="300">'.$nome.'</td></tr>
    <tr>
    <td><b>Oggetto:</b></td>
    <td>'.$cognome.'</td></tr>
    <tr>
    <td><b>E-mail:</b></td>
    <td>'.$mittente.'</td></tr>
    <tr>
    <td><b>Richiesta:</b></td>
    <td>'.$richiesta.'</td></tr>
    </table></td></tr>
    </table>
    </body>
    </html>';
    $headers = "From: $nome <$mittente>\n";
    $headers .= "Content-Type: text/html; charset=iso-8859-1\n";
    
    if(mail($_POST['destinatario'], $cognome, $sms, $headers)){
    echo '&controllo=invio avvenuto con successo.';
    }
    else{
    echo '&controllo=errore: e-mail non inviata.';
    }
    ?> 
    ```Chi mi fa il favore di modificarlo (o mi dice come fare) per farmi arrivare le email non formattate in Html?
    
    Grazie :)

  • ModSenior

    Togli:
    [php]
    $headers .= "Content-Type: text/html; charset=iso-8859-1\n";[/php]


  • User Attivo

    una roba così?

    [php]

    <?
    if(!empty($_POST['nome']) || !empty($_POST['email']) || !empty($_POST['suosito']) || !empty($_POST['msg']))
    {
    //Inserire la propria mail nel parametro $to
    $to = "MAIL TUA";
    $subject = stripslashes("Hai ricevuto una mail da " . $_POST['nome']);
    $body = stripslashes($_POST['msg']);
    $body .= "\n\n---------------------------\n";
    $body .= "Da: " . $_POST['nome'] . " <" . $_POST['email'] . ">\n" . $_POST['suosito'];
    $header = "From: " . $_POST['nome'] . " <" . $_POST['email'] . ">\n" . $_POST['suosito'];
    $header .= "Reply-To: " . $_POST['nome'] . " <" . $_POST['email'] . ">\n" . $_POST['suosito'];
    $header .= "X-Mailer: PHP/" . phpversion() . "\n";
    $header .= "X-Priority: 1";
    if(@mail($to, $subject, $body, $header))
    {
    echo "output=sent";
    } else {
    echo "output=error";
    }
    } else {
    echo "output=error";
    }
    ?>

    [/php]

    mi sa che dovrai cambiare qualche nome di istanza... a m cmq la mail viene perfetta sotto forma di testo 😉


  • User Attivo

    @Thedarkita said:

    Togli:
    [php]
    $headers .= "Content-Type: text/html; charset=iso-8859-1\n";[/php]

    Se lo levo mi arriva un'email in linguaggio html, tipo questa:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01  Transitional//EN">
    <html>
    <head>
    <meta  http-equiv="Content-Type" content="text/html;  charset=iso-8859-1">
    <title>Contatti</title>
    </head>
    <body  style="margin:0px;">
    <table cellpadding="0" cellspacing="0"  style="height:100%;width:500px;">
    <tr>
    <td  style="height:100%;padding:20px;vertical-align:top;">
    <table>
    <tr><td  colspan="2">
    </td>
    </tr>
    <tr><td  width="110"><b>Nome:</b></td>
    <td  width="300">prova</td></tr>
    <tr>
    <td><b>Oggetto:</b></td>
    <td>ciao</td></tr>
    <tr>
    <td><b>E-mail:</b></td>
    <td>[email protected]</td></tr>
    <tr>
    <td><b>Richiesta:</b></td>
    <td>prova</td></tr>
    </table></td></tr>
    </table>
    </body>
    </html>
    

  • User Attivo

    @Oliviero said:

    una roba così?

    Ti ringrazio Oliviero, ma io sono completamento zero in PHP, non saprei sinceramente dove e come mettere mano.
    Il codice che uso adesso non è farina del mio sacco 🙂


  • ModSenior

    Se non la mandi in html è logico che ti arriva come testo... che era quello che volevi fare...


  • User Attivo

    @Thedarkita said:

    Se non la mandi in html è logico che ti arriva come testo... che era quello che volevi fare...

    Si, ma mi arriva esattamente quello che ho incollato, uguale uguale 🙂


  • ModSenior

    Se è testo arriva in quel modo infatti, o html o in quel modo non ci sono altri metodi(almeno che io sappia)


  • User Attivo

    @Thedarkita said:

    Se è testo arriva in quel modo infatti, o html o in quel modo non ci sono altri metodi(almeno che io sappia)

    Beh, se fosse come dici tu allora esiste solo in html, non avrebbe senso farsi arrivare un'email piena di tag dove non si capisce nulla :tongueout:

    Io non ne capisco niente, per cui mi affido a voi.
    Per ora ho ripristinato l'html 🙂

    :ciauz:


  • ModSenior

    Ha senso se evi farti mandare codici html dagli utenti ad esempio... ogni cosa ha la sua utilità...


  • User Attivo

    Ciao Girovago,
    Thedarkita ha ragione... i computer fanno solo quello che dice l'uomo e non sempre ciò ha senso...:D

    Tolta la riga che ti è stata indicata, l'email arriva come testo. Se non vuoi vedere i tag li devi eliminare, passando da:

    [html]
    $sms = '
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Contatti</title>
    </head>
    <body style="margin:0px;">
    <table cellpadding="0" cellspacing="0" style="height:100%;width:500px;">
    <tr>
    <td style="height:100%;padding:20px;vertical-align:top;">
    <table>
    <tr><td colspan="2">
    </td>
    </tr>
    <tr><td width="110"><b>Nome:</b></td>
    <td width="300">'.$nome.'</td></tr>
    <tr>
    <td><b>Oggetto:</b></td>
    <td>'.$cognome.'</td></tr>
    <tr>
    <td><b>E-mail:</b></td>
    <td>'.$mittente.'</td></tr>
    <tr>
    <td><b>Richiesta:</b></td>
    <td>'.$richiesta.'</td></tr>
    </table></td></tr>
    </table>
    </body>
    </html>';

    [/html]

    a

    [html]
    $sms = '
    Nome: '.$nome.'
    Oggetto: '.$cognome.'
    E-mail: '.$mittente.'
    Richiesta: '.$richiesta;
    [/html]

    :ciauz:


  • User Attivo

    Grande ceccus, ora funziona a dovere ed arriva in solo testo.

    Grazie! 🙂


  • User Attivo

    Riprendo il thread per fare un'altra richiesta, "approfittando" del vostro sapere 😛

    Nel testo dell'email, se scrivo lettere con l'accento, come ad esempio à, è, ò, mi compaiono sempre questi segni: Ã, è, ò, ì

    Come mai e come posso risolvere questo problema?
    Grazie!


  • ModSenior

    usa le entità html, è per la è ecc


  • User Attivo

    Non sono un esperto e non ho capito cosa dovrei fare, scusami 🙂

    Attualmente questo è il mio file .php:
    [php]<?php
    $nome = stripslashes($_POST['nome']);
    $cognome = stripslashes($_POST['cognome']);
    $mittente = stripslashes($_POST['mittente']);
    $richiesta = stripslashes($_POST['richiesta']);
    $sms = '
    Nome: '.$nome.'
    Oggetto: '.$cognome.'
    E-mail: '.$mittente.'
    Richiesta: '.$richiesta;
    $headers = "From: $nome <$mittente>\n";

    if(mail($_POST['destinatario'], $cognome, $sms, $headers)){
    echo '&controllo=invio avvenuto con successo.';
    }
    else{
    echo '&controllo=errore: e-mail non inviata.';
    }
    ?> [/php]

    Cosa dovrei modificare?
    Grazie!


  • ModSenior

    [php]<?php
    $nome = stripslashes($_POST['nome']);
    $cognome = stripslashes($_POST['cognome']);
    $mittente = stripslashes($_POST['mittente']);
    $richiesta = stripslashes($_POST['richiesta']);
    $sms = htmlentities('
    Nome: '.$nome.'
    Oggetto: '.$cognome.'
    E-mail: '.$mittente.'
    Richiesta: '.$richiesta);
    $headers = "From: $nome <$mittente>\n";

    if(mail($_POST['destinatario'], $cognome, $sms, $headers)){
    echo '&controllo=invio avvenuto con successo.';
    }
    else{
    echo '&controllo=errore: e-mail non inviata.';
    }
    ?> [/php]

    prova cosi...


  • User Attivo

    Niente da fare, ora le lettere con l'accento escono così:
    ò
    à
    ì
    Ã&uml

    Grazie per il supporto 🙂


  • User Attivo

    Aiutino 😞 🙂 🙂


  • User Attivo

    è normale che ti escano cosi...
    caratteri come à equivalgono a à che è HTML...
    potresti utilizzare le mail in formato html ma con i tag <pre> e </pre> tra il messaggio....non so ..


  • User Attivo

    @ilnetsurfer said:

    è normale che ti escano cosi...
    caratteri come à equivalgono a à che è HTML...
    potresti utilizzare le mail in formato html ma con i tag <pre> e </pre> tra il messaggio....non so ..

    Cerco di capire allora:
    se voglio l'email senza HTML, quindi solo testo, devo accontentarmi e ricevere le lettere accentate con quei caratteri strani, non c'è altro modo.

    Non conosco i tag <pre>, ma se voglio usarli dovrò comunque tornare al linguaggio HTML, giusto?

    Pensavo fosse più semplice ricevere una mail testuale :fumato: