Newsgroup: it.comp.www.php
Titolo: Come formattare il corpo di una mail.

Ciao a tutti, scusate se scriverò delle sciocchezze ma non conosco il php.
Sto realizzando un sito con flash che prevede il classico form per la
spedizione di una mail. Mi hanno consigliato di usare il seguente,
semplice, codice:
********************************************************************
<?php
$header_info = "MIME-Version: 1.0\r\n"; 
$header_info .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
$header_info .= "From: ".$name." <".$email.">"; 
mail ($my_email, $my_subject, " 
Name: 
$name
<br>
E-Mail Adress: 
$email
<br>
<br>
Message:
<br>
$message 
", $header_info); 
?> 
********************************************************************
La mail arriva correttamente e con tutti i campi completati, solo che il
corpo del messaggio viene messo tutto su di una riga e cioè... se
nell'input box del mio form per le mail io scrivo, ad esempio:
********************************************************************
Ciao,
ho visitato il tuo sito che trovo molto bello.
Se ti va puoi visitare il mio sito che è:
http://www.google.it
********************************************************************
la mail che ricevo sarà così composta:
********************************************************************
Ciao,ho visitato il tuo sito che trovo molto bello.Se ti va puoi visitare
il mio sito che Ã¨:
http://www.google.it
********************************************************************
Come si vede, oltre a sostituire la "è" con "Ã", non rispetta la
formattazione che io ho dato alla mail nel form sul sito.
Come posso modificare il codice php che ho postato sopra, in modo che la
mail mantenga la formattazione che ho dato io nell'input box del mio form
per le mail... e come posso far riconoscere tutti i caratteri ed evitare
che alcuni caratteri non riconosciuti vengano cambiati con altri?
Grazie a chi mi darà una mano... probabilmente sarà una cosa
semplicissima... ma nonostante io abbia letto molti articoli
sull'argomento e abbia fatto molte prove, quando vado a modificare il file
php la mail non arriva più.
Ciao.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 formattazione che io ho dato alla mail nel form sul sito.
Stai inviando mail in html e in iso 8859-1.
Quindi per rispettare la formattazione devi usare nl2br(), e
probabilmente il tuo frontend prende testo in utf-8, quindi devi usarlo
anche per le mail o convertirlo da utf-8 a iso 8859-1 lato server.
Bye.

 semplice, codice: [...]
Caro signor x,
e' brutto scrivere a gente che non ha un nome umano, ma pazienza.
Questo piu' che altro serve noi altri, in modo che ci risparmiamo un
altro zombi-script.
Il fatto e' che ti hanno dato un pessimo consiglio. Quello script
permetterebbe di inviare spam a gogo. Mai mettere dati provenienti dal
client negli argomenti "TO" e "HEADERS" della funzione mail() senza una
adeguata validazione. Metti solo info statiche. Quindi, nel campo From
metti te stesso. Se dovrai rispondere, copierai l'indirizzo del tizio dal
corpo del messaggio.  Questa e' la parte importante di tutto il discorso.
Il problema dei caratteri strani e' che il form e' in UTF-8, quindi devi
mettere UTF-8 al posto di ISO-8859-1.
Il messaggio devi sottoporlo a htmlspecialchars() e poi a wordwrap()
per rispettare i limiti della lunghezza delle righe.
Visto che tanto il messaggio e' in puro testo, non vedo perche' scomodare
l'HTML: lascialo come text/plain.
Guarda gli esempi del manuale relativi a mail().
Ciao,
 ___ 
/_|_\  Umberto Salsi
\/_\/  
www.icosaedro.it

 anche per le mail o convertirlo da utf-8 a iso 8859-1 lato server.
Grazie per la rapidissima risposta. :-)
Ma quello che hai scritto č per me arabo... proverň a documentarmi.
Dove e come dovrei inserire nl2br() nel codice php che ho postato prima?
Cosa intendi per frontend?
Come controllo il tipo di testo che sto usando e nel caso, come lo
convertirei in iso 8859-1 lato server?
Come vedi sono veramente a terra su questi argomenti... ti sarei grato se
volessi rispondere alle suddette domande... magari in modo piů "semplice"
di prima ;-) o indicarmi qualche articolo su cui documentarmi.


 Guarda gli esempi del manuale relativi a mail().
Mi documenterò.
Grazie per la rapida risposta.
Purtroppo, per me, è difficile sostenere una discussione su di un
argomento che non conosco assolutamente... come ho già detto nell'altra
risposta, la maggior parte delle cose che mi avete scritto sono per me
arabo... ecco perchè speravo che qualcuno mi dicesse semplicemente come
modificare il codice postato in modo da ottenere il risultato voluto...
continuerò a documentarmi ed a fare prove... prima o poi ci riuscirò. :-(
Massimo.


 di prima ;-) o indicarmi qualche articolo su cui documentarmi.
Se vuoi usare PHP, prima leggiti il manuale (
www.php.net
 -> Manual). Il
resto sono argomenti molto numerosi ed estesi, molto viene solo con
l'esperienze e seguendo newsgroup e siti dedicati.
Bye.

 permette di inviare spam dal tuo sito a indirizzi qualsiasi.
Come ho già scritto nella risposta ad Umberto Salsi, intendi che lo spam
lo invierei io volontariamente, lo riceverei oppure che qualcuno potrebbe 
utilizzare quei dati (e in questo caso come) a scapito di eventuali
visitatori del sito che dovessero utilizzare il form per inviarmi una mail?
Ultima domanda, dato che quello dello spam è l'ultimo dei problemi che
vorrei creare/avere.
Dove posso trovare dei form php già compilati, che tengano conto di questo
problema dello spam e che non siano troppo complessi (mi basta che la mail
spedita dal sito mi arrivi con la giusta formattazione - cioè quella che
il visitatore del sito darà scrivendo la sua mail nel form del sito stesso
-   e che i caratteri non vengano sostituiti con altri)? 
Ciao e grazie per la pazienza.
Massimo.


 -   e che i caratteri non vengano sostituiti con altri)? 
Su 
phpclasses.org
 ci sono diverse classi che permettono di inviare mail.
Ma ripeto: devi studiare PHP per capire come usarle. Non puoi
improvvisarti programmatore da un giorno all'altro.
Bye.