formattazione testo con client posta

Salve a tutti.

Posto un problemino a cui forse qualcuno puň porre rimedio.

In una pagina che chiamiamo shop.php  ho messo delle checkbox che tramite modulo inviano i loro valori ad una pagina chiamata riepilogo.php.

Questo č il codice del modulo di shop.php:

<?php $array_modello = "nome_modello[]"; ?>

<form action="riepilogo.php" method="post">

<ul>

<li ><input type="checkbox" name="<?php echo $array_modello ?>" value="valore 1 " /></li>

<li ><input type="checkbox" name="<?php echo $array_modello ?>" value="valore 2 " /></li>

<li ><input type="checkbox" name="<?php echo $array_modello ?>" value="valore 3 " /></li>

</ul>

<input type="submit" name="buy" value="buy" />

</form>

questo č il codice di riepilogo.php che contiene i valori delle checkbox selezionate e apre il client di posta per poter spedire l'ordine degli articoli selezionati dalle checkbox

<?php if ($_SESSION['nome_modello'] != "") { ?>

        <h4>titolo</h4>

        [color=red]<?php[/color]                       foreach ($_SESSION['nome_modello'] as $key => $indice) {

         echo $indice.'<br />';

      }           ?>

<a href="mailto:mail@mail.com?cc=mail@mail.com&subject= my subject&body= <?php include('function/mail.php'); ?>">acquista</a>

il corpo della mail viene creato con questo script presente nel file mail.php:

<?php
echo "Vorrei comprare questi modelli: "."\n\r";
      if ($_SESSION['nome_modello'] != "") {      
      foreach ($_SESSION['nome_modello'] as $key => $indice) {

         echo $indice."\n\r";

      }
      }

?>

L'output del corpo della mail č questo (testato con MS outlook su Win ed Entourage su Mac):

Vorrei comprare questi modelli: valore 1 valore 2 valore 3

mentre io vorrei che fosse

Vorrei comprare i seguenti modelli:

valore 1

valore 2

valore 3

Grazie a tutti in anticipo.

 :bye:

inviato 8 anni fa
spaghettiss
X 0 X

La mail č in testo semplice o in HTML?

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

La mail č in HTML e riceve il body dalla variabile $indice che contiene l'array "nome_modello" che a sua volta riceve i valori dalle checkbox.

Ho anche provato a switchare nel client di posta da HTML a testo e viceversa, ma rimane comunque su una sola riga.

Vorrei solo mandare a capo le varie stringhe, tutto qua.

Grazie di nuovo.

 :)

risposto 8 anni fa
spaghettiss
X 0 X

se č in HTML per mandare a campo il testo devi usare il tag "<br>" e non il carattere di fine riga "\n"

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Infatti precedentemente avevo usato il <br /> ma l'output era:

Vorrei comprare i seguenti modelli:<br />valore 1<br />valore 2<br />valore 3<br />

 :'( in pratica ancora peggio.

risposto 8 anni fa
spaghettiss
X 0 X

Ho risolto sostituendo "\r\n" con "%0A". Ogni %0A č un a capo.

<?php

echo "Vorrei comprare questi modelli: "."%0A%0A";

if ($_SESSION['nome_modello'] != "") {
foreach ($_SESSION['nome_modello'] as $key => $indice) {

echo $indice."%0A";

   }

   }

?>

Credo funzioni anche con %0D. Specifico che 0 č il numero zero e non la maiuscola O.

Spero possa servire.

fonte: http://www.massimo61.org/email/

 :bye:

risposto 8 anni fa
spaghettiss
X 0 X

Ho notato che con %0A alcuni client mail (entourage per essere precisi) non mandano a capo. Dunque ho sostituito %0A con %0D.

<?php

echo "Vorrei comprare questi modelli: "."%0D%0D";

if ($_SESSION['nome_modello'] != "") {
foreach ($_SESSION['nome_modello'] as $key => $indice) {

echo $indice."%0D";

}
}

?>

Testato con Outlook, Outlook Express, Mail ed Entourage.

:)

risposto 8 anni fa
spaghettiss
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda