Visualizzazione risultati 1 fino 7 di 7

Discussione: a capo textarea php email

  1. #1
    Guest

    Predefinito a capo textarea php email

    Io ho un form in html che manda i vari campi inseriti ad una pagina in php che manda una mail col messaggio

    il campo messaggio è una textarea e non mi mantiene la formattazione quando arriva al destinatario, c'è un modo per mantenera gli a capo messi dall'utente al momento della composizione?

    grazie

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Puoi riportare il sorgente dello script PHP?

  3. #3
    Guest

    Predefinito

    Questo è il contenuto del file PHP che invia la mail

    il form in html che contiene la text area è in semplice linguaggio html

    Codice PHP:
    <?php

    session_start
    ();
    $nome = $_SESSION['nome'];
    $cognome = $_SESSION['cognome'];
    $email = $_SESSION['email'];
    $oggetto = $_SESSION['oggetto'];
    $messaggio = $_SESSION['messaggio'];

    // Genera un boundary
    $mail_boundary = "=_NextPart_" . md5(uniqid(time()));

    $to = "email@destinatario.it";
    $subject = "$oggetto";
    $sender = "$nome $cognome <$email>";


    $headers = "From: $sender\n";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-Type: multipart/alternative;\n\tboundary=\"$mail_boundary\"\n";
    $headers .= "X-Mailer: PHP " . phpversion();

    // Corpo del messaggio nel formato HTML
    $html_msg = "$messaggio<hr><p>Nome: <strong>$nome</strong></p><p>Cognome: <strong>$cognome</strong></p><p>Indirizzo e-mail: <strong>$email</strong></p><p>Oggetto: <strong>$oggetto</strong></p>";

    // Costruisci il corpo del messaggio da inviare
    $msg .= "\n--$mail_boundary\n";
    $msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
    $msg .= "Content-Transfer-Encoding: 8bit\n\n";
    $msg .= "$html_msg";

    // Boundary di terminazione multipart/alternative
    $msg .= "\n--$mail_boundary--\n";

    // Invia il messaggio, il quinto parametro "-f$sender" imposta il Return-Path su hosting Linux
    if (mail($to, $subject, $msg, $headers, "-f$sender")) {
    echo
    "messaggio inviato";
    } else {
    echo
    "messaggio NON inviato";
    }

    ?>

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,270

    Predefinito

    Prova a passare il testo attraverso nl2br(), che converte i normali ritorni a capo in tag html per il line break.

  5. #5
    Guest

    Predefinito

    ok scusa la mia ignoranza ma tra le virgolette del messaggio cosa dovrei scrivere, mi potresti fare un esempio?

    grazie

  6. #6
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Prova così, non l'ho provato ma non ci dovrebbero essere errori.
    Codice PHP:
    <?php

    session_start
    ();
    $nome = $_SESSION['nome'];
    $cognome = $_SESSION['cognome'];
    $email = $_SESSION['email'];
    $oggetto = $_SESSION['oggetto'];
    $messaggio = $_SESSION['messaggio'];

    // Genera un boundary
    $mail_boundary = "=_NextPart_" . md5(uniqid(time()));

    $to = "email@destinatario.it";
    $subject = "$oggetto";
    $sender = "$nome $cognome <$email>";


    $headers = "From: $sender\n";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-Type: multipart/alternative;\n\tboundary=\"$mail_boundary\"\n";
    $headers .= "X-Mailer: PHP " . phpversion();

    // Corpo del messaggio nel formato HTML
    $html_msg = nl2br($messaggio)."<hr><p>Nome: <strong>$nome</strong></p><p>Cognome: <strong>$cognome</strong></p><p>Indirizzo e-mail: <strong>$email</strong></p><p>Oggetto: <strong>$oggetto</strong></p>";

    // Costruisci il corpo del messaggio da inviare
    $msg .= "\n--$mail_boundary\n";
    $msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
    $msg .= "Content-Transfer-Encoding: 8bit\n\n";
    $msg .= "$html_msg";

    // Boundary di terminazione multipart/alternative
    $msg .= "\n--$mail_boundary--\n";

    // Invia il messaggio, il quinto parametro "-f$sender" imposta il Return-Path su hosting Linux
    if (mail($to, $subject, $msg, $headers, "-f$sender")) {
    echo
    "messaggio inviato";
    } else {
    echo
    "messaggio NON inviato";
    }

    ?>

  7. #7
    Guest

    Talking

    FUNZIONA !!!
    GRAZIE MILLE !!!

    non so perchè non c'avevo pensato ...

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •