Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Brak formatu HTML w mailu
Forum PHP.pl > Forum > PHP
Mustava
Wysyłam maila za pomocą ponizszego kodu:
Kod
  $include_path = array('/usr/lib/php' );
  
        ini_set('include_path', implode(';', $include_path));
        require_once 'Mail.php';
      
  
        $params['host'] = 'smtp.zz.pl';
      
        $headers['Subject'] = 'Temat wiadomości';
        $headers['From'] = 'automat@yy.pl';
        $headers['To'] = 'mustava@yy.pl';
        $headers['MIME-Version']='1.0';
        $headers['Content-type']='text/html; charset=iso-8859-2';
      
  
          $zaw="Treść wiadomości linia1<br>";
          $zaw=$zaw."Treść wiadomości linia2<br>";
          $zaw=$zaw."Treść wiadomości linia3<br>";
          $zaw=$zaw."Treść wiadomości linia4<br>";
          $zaw=$zaw."Treść wiadomości linia5<br>";
      
        $body = $zaw;
        $recipients = $mail;
        $mail = Mail::factory('smtp', $params);
        $mail->send($recipients, $headers, $body);


Niestety po odebraniu wiadomości w programie pocztowym na ma formatu HTML - mail wygląda tak:
=====================================
From: automat@yy.pl

To: mustava@yy.pl

MIME-Version: 1.0

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

Treść wiadomości linia1<br>Treść wiadomości linia2<br>Treść wiadomości linia3<br>Treść wiadomości linia4<br>Treść wiadomości linia5<br>
======================================
Temat wiadomości jest OK

Ki grzyb?

Na innym serwerze skrypt działa OK



Nikt nie wie?
Zastanawia mnie to że są nagłówki From, To, MIME-Version i Content-type
nie zostają zinterpretowane jako nagłówek maila lecz jego treść.

Sprawa rozwiązana (obejście problemu) - użyłem PHPMailer
webJ@cob
Proponuję:

$body = '<html><body>' . $zaw . '</body></html>';
Mustava
Tez to próbowałem zastosować - niestety nic to nie dawało.
Coś musiało być z nagłówkami, bo Subject "wskakiwał" właściwie jako temat wiadomości, ale pozostałe elementy nagłówka "przechodziły" do treści maila.

Ale dzięki za dobre chęci rolleyes.gif
deirathe
Też miałem podobny problem i wyrobiłem taką funkcję. Może szału nie robi ale powinna działać:
  1. <?php
  2. function htmlMail($to,$from,$subject,$body,$encoding="utf-8")
  3.    {
  4.        $headers = 'Content-Disposition: inline' . "\n";
  5.        $headers .= 'Content-Transfer-Encoding: quoted-printable' . "\n";
  6.        $headers .= 'Content-Type: text/html; charset="'.$encoding.'"' . "\n";
  7.        $headers .= 'MIME-Version: 1.0' . "\n";
  8.        $headers .= 'From:  Ktos cos<'.$from.'>' . "\n";
  9.        $headers .= 'To: <'.$to.'>' . "\n";
  10.        $headers .= 'Reply-To: '.$from. "r\n";
  11.  
  12.        $body='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  13. <html>
  14. <head>
  15. <meta http-equiv="Content-Type" content="text/html; charset=$encoding">
  16. <title></title>
  17. </head>
  18. <body>'.$body.'</body></html>';
  19.    
  20.        // Wysłanie e-maila
  21.        mail($to, $subject, $body, $headers);
  22.  
  23.    }
  24. ?>
Mustava
THX, ale muszę wysyłać przez smtp

Ogólnie już problemu NIE MA - działa OK z użyciem PHPMailera
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.