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>