Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Frankos
    Registrato dal
    Nov 2002
    Messaggi
    505

    Problema con formattazione email

    Ciao a tutti,

    ho il seguente codice per l'invio di e-mail:

    # recupero variabili dal form

    $destinatario= $_POST['destinatario'];
    $nome = $_POST['nom'];
    $cognome = $_POST['prenom'];
    $iscrizione = $_POST['inscription'];
    $telefono = $_POST['telephone'];
    $indirizzo = $_POST['adresse'];
    $indirizzo = str_replace("\n", "
    ",$indirizzo);
    $email_mittente = $_POST['email'];
    $testo = str_replace("\n", "
    ",$_POST['message']);
    $testo = str_replace("\'", "'",$testo);
    $email = $destinatario
    $oggetto_email = "Email dal sito";
    $messaggio = "";
    $messaggio = $messaggio."<head>";
    $messaggio = $messaggio."<title>Message</title>";
    $messaggio = $messaggio."<style type=\"text/css\">";
    $messaggio = $messaggio.".Stile1 {";
    $messaggio = $messaggio."font-family: Verdana, Arial, Helvetica, sans-serif;";
    $messaggio = $messaggio."font-size: 12px;";
    $messaggio = $messaggio."}";
    $messaggio = $messaggio."</style>";
    $messaggio = $messaggio."</head>";
    $messaggio = $messaggio."<body>";
    $messaggio = $messaggio."<span class=\"Stile1\"><u>Message reçu de:</u></span>

    ";
    $messaggio = $messaggio."<p class=\"Stile1\">";
    $messaggio = $messaggio."$nome $cognome
    "."No. inscription à l'ordre.: $iscrizione
    "."Tél.: $telefono
    "."Adresse postale:
    $indirizzo
    "."E-mail: <a href=\"mailto:$email_mittente\">$email_mittente</a>


    ";
    $messaggio = $messaggio."</p>";
    $messaggio = $messaggio."<span class=\"Stile1\">Quéstion: $question</span>


    ";
    $messaggio = $messaggio."<span class=\"Stile1\"><u>Texte du message:</u></span>

    ";
    $messaggio = $messaggio."<span class=\"Stile1\">$testo</span>";
    $messaggio = $messaggio."</body>";
    $corpo = "$messaggio";

    // costruiamo le intestazioni per il formato HTML
    $header = "MIME-Version: 1.0\r\n";
    $header .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $header .= "From: <$email_mittente>";

    mail($email, $oggetto_email, $corpo, $header);



    Come mai l'email arriva a destinazione in questo modo???


    DEBUT DU MAIL :

    -----Message d'origine-----
    De :
    Envoyé : Aucune
    À : Nome cognome
    Objet : E-mail from the website



    Content-type: text/html; charset=iso-8859-1



    From: <mittente@dominio.com>

    Message-Id: <20070616044605.49F0B41700@90plan.ovh.net>

    Date: Sat, 16 Jun 2007 06:46:05 +0200 (CEST)

    Return-Path: bounce-id=D167=U8256.90plan.ovh.net=1181969166266310891@8 .mail-out.ovh.net

    X-OriginalArrivalTime: 16 Jun 2007 04:46:24.0634 (UTC) FILETIME=[4B198DA0:01C7AFD1]



    <head><title>Message</title><style type="text/css">.Stile1 {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 12px;}</style></head><body><span class="Stile1"><u>Message reçu de:</u></span>

    <p class="Stile1">nome mittente
    Tél.: 1234567
    E-mail: nome@dominio.com


    </p><span class="Stile1"><u>Texte du message:</u></span>

    <span class="Stile1">Testo completo del messaggio</span></body>



    FIN DU MAIL.
    Sempre più in alto...
    www.webdition.com

  2. #2
    Tutte quelle operazioni di assegnazione a $messaggio le puoi ridurre ad una sola:

    Codice PHP:
    $corpo "<head>
    <title>Message</title>
    <style type=\"text/css\">
    .Stile1 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
    }
    </style>
    </head>
    <body>
    <span class=\"Stile1\"><u>[b]Message reçu de:[/b]</u></span>


    <p class=\"Stile1\">
    $nome $cognome
    No. inscription à l'ordre.: 
    $iscrizione

    Tél.: 
    $telefono
    Adresse postale: 
    $indirizzo
    E-mail: <a href=\"mailto:
    $email_mittente\">$email_mittente</a>



    </p>
    <span class=\"Stile1\">[b]Quéstion:[/b] 
    $question</span>



    <span class=\"Stile1\"><u>[b]Texte du message:[/b]</u></span>


    <span class=\"Stile1\">
    $testo</span>
    </body>"

    Inoltre puoi rettificare:
    Codice PHP:
    $indirizzo str_replace("\n""
    "
    $indirizzo);
    $testo str_replace("\n""
    "
    $_POST['message']);
    // con questo:

    $indirizzo nl2br($indirizzo);
    $testo nl2br($_POST['message']); 
    Anche perché sui sistemi Linux il carattere di interruzione riga è un newline (\n), ma su Windows devi considerare anche il carriage return (\r), e se sostituisci solo i newline (\n) rimane comunque un carriage return. Proprio per questo esiste la funzione nl2br che ne tiene conto, è più pratica e fatta apposta.

    Codice PHP:
    // L'operazione seguente non serve a nulla, sostituisce gli apici con gli apici.
    $testo str_replace("'""'",$testo);
    // Puoi annullare i caratteri speciali con:
    $testo htmlspecialchars($testo); 
    Per quanto riguarda il problema di visualizzazione, dipende dagli header della mail, che non sono completi.

    Qui hai una buona guida su come compilare correttamente una mail in formato HTML con PHP:

    http://php.html.it/articoli/leggi/91...-html-con-php/

    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

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.