Mancata interpretazione di outlook della mail html

Salve a tutti!

Ho la necessità di inviare mail da script php. Le caselle di posta online che ho provato, accettano la mia mail in modo corretto (a parte in yahoo dove devo dichiarare che la mail ricevuta non è uno spam).

Outlook invece mi fa visualizzare il codice html della medesima.

Il problema penso stia nell' header, considerando che ho già preso precauzioni tipo: non usare css(se non inline), non usare il tag <div>, ecc.

Quindi vi posterò questo per aiutarvi ad aiutarmi :)

<?php
        $header = "MIME-Version: 1.0\r\n";
   $header .= "Content-Type: text/html;\r\n charset=\"iso-8859-1\"\r\n";
   $header .= "From: $mail_from_name <$mail_from_mail>\r\n";
   $header .= "Content-Transfer-Encoding: 7bit\r\n";
?>

Grazie!

inviato 5 anni fa
Schiappa
X 0 X

L'esempio di mail HTML presente nella documentazione ufficiale di PHP è un po' diverso:

http://php.net/manual/en/function.mail.php

Lo riporto per comodità:

<?php
// multiple recipients
$to  = 'aidan@example.com' . ', '; // note the comma
$to .= 'wez@example.com';

// subject
$subject = 'Birthday Reminders for August';

// message
$message = '
<html>
<head>
  <title>Birthday Reminders for August</title>
</head>
<body>
  <p>Here are the birthdays upcoming in August!</p>
  <table>
    <tr>
      <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
    </tr>
    <tr>
      <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
    </tr>
    <tr>
      <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
    </tr>
  </table>
</body>
</html>
';

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);
?>

Se noti non si va a capo prima del charset che invece è in liena con il content type. Inoltre non viene dichiarato il Content-Transfer-Encoding.

Fai una prova e facci sapere

 :bye:

risposto 5 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda