Proporcjonalna czcionka Temat: problem z polskimi znakami w PEAR Mail
Autor: jivanmuktaWYTNIJTO@poczta.onet.pl Data: 24 Paź 2009
Odwołania:
Dzień dobry, Wysyłam emaila używając biblioteki PEAR języka PHP. Jest problem z polskimi znakami: w mailu pojawiają się dodatkowo sekwencje 3D i =. Na grupie pl.comp.lang.php dowiedziałem się, że "to kodowanie quoted-printable, z niewiadomych przyczyn w szablonie maila, zamiast dodawane automatycznie". Nie rozumiem problemu, ponieważ: 1. w funkcji wysyłającej sendEmail() mam 'text/html; charset=ISO-8859-2' 2. funkcja emailMessage() zawiera również 'text/html; charset=ISO-8859-2' 3. obie funkcje znajdują się w plikach źródłowych o kodowaniu ISO-8859-2. Prosiłbym o pomoc. Załączam kod: function sendEmail($fullNo, $announcement, $recipients) { global $db; $headers['From'] = 'jivanmukta@poczta.onet.pl'; $headers['Reply-To'] = 'jivanmukta@poczta.onet.pl'; $headers['Subject'] = ...; $headers['MIME-Version'] = '1.0'; $headers['Content-type'] = 'text/html; charset=ISO-8859-2'; $headers['X-Mailer'] = 'PHP'; $params['host'] = 'smtp.poczta.onet.pl'; $params['auth'] = true; $params['username'] = 'jivanmukta'; $params['password'] = ...; $year = ...; $month = ...; $no = ...; $mime = new Mail_mime("\n"); $mime->setHTMLBody(emailMessage(false, $year, $month, $no)); $result = $db->query('SELECT file_name, picture FROM pictures ' . "WHERE year = $year AND month = $month AND no = $no"); while ($row = $result->fetch_row()) { @mkdir($websiteRoot . '/tmp', $fullNo); createPicture($websiteRoot . '/tmp', $fullNo, $row[0], $row[1]); $mime->addAttachment("$websiteRoot/tmp/$fullNo/$row[0]"); } $result->close(); $mailObject =& Mail::factory('smtp', $params); $sent = $mailObject->send(array('Bcc' => $recipients), $mime->headers($headers), $mime->get()); $f = fopen('c:/email.txt', 'w'); fwrite($f, $mime->get()); fclose($f); return !PEAR::isError($sent); } function emailMessage($cancel, $year, $month, $no) { return "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd'>\n"; . "<html lang='pl'>\n" . "<head>\n" . '<title>' . ($cancel ? ... : ...) . "</title>\n" . "<meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-2'>\n" . "<meta http-equiv='Content-Language' content='pl-PL'>\n" . "</head>\n" . emailMessageBody($year, $month, $no, ($cancel ? ... : ...)) . '</html>'; } Po czym plik c:\email.txt zawiera: <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/htm= l4/strict.dtd'> <html lang=3D'pl'> <head> <title>...</title> <meta http-equiv=3D'Content-Type' content=3D'text/html; charset=3DISO-8859-= 2'> <meta http-equiv=3D'Content-Language' content=3D'pl-PL'> </head> <body> <table border=3D'0'> <tbody> <tr><td>Typ oferty:</td><td>kupno</td></tr> <tr><td>Od kiedy wa=BFne:</td><td>2009-10-23</td></tr> ... </tbody> </table> </body> </html>
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl