PEAR を使用して UTF-8 電子メールを送信しようとしていますが、コンテンツ タイプ ヘッダーを設定すると、送信された電子メールが奇妙な方法で壊れます。
これらは、ヘッダーとナシ自体に使用する設定です。
$headers = array (
'From' => $emailAdresa,
'To' => $emailDest,
'Subject' => $subiect,
'Return-Path' => '****@****.eu',
'X-Codent' => '['.$codent_header.']',
'X-Ent' => '['.$ent_header.']',
'X-Bzd' => '['.$baza_date.']',
'X-Email' => '['.$email['Email'].']',
'Content-Type' => 'text/html; charset=UTF-8'
);
$hdrs = $mime->headers($headers, true);
$smtp = Mail::factory('smtp',
array ('host' => $emailServer,
'auth' => true,
'port' => ''.$emailPort.'',
'username' => $emailUtilizator,
'password' => $emailParola));
$mail = $smtp->send($emailDest, $hdrs, $body);
これは、Content-type ヘッダーが設定されている場合に受信するメールです。
Return-Path: <*******>
Received: from localhost ([93.114.43.202])
by mx.google.com with ESMTPS id fy17sm687802bkc.6.2013.02.22.06.23.42
(version=TLSv1 cipher=RC4-SHA bits=128/128);
Fri, 22 Feb 2013 06:23:43 -0800 (PST)
Message-ID: <51277f6f.9178cd0a.600a.2b1c@mx.google.com>
Date: Fri, 22 Feb 2013 06:23:43 -0800 (PST)
Content-Type: text/html; charset=UTF-8
MIME-Version: 1.0
From: ******
To: ******
Subject: test
Return-Path: ******
X-Codent: [230802]
X-Ent: [Note]
X-Bzd: [1]
X-Email: [******]
--=_f11764219c81f7cdd5e1729bb3b44ca6
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=ISO-8859-1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www=
=2Ew3.org/TR/REC-html40/loose.dtd">
<html><body><p>test ?î??îâ</p>
<p> </p>
test<br>
abcd<br>
test semnatura<img height=3D"1px" width=3D"1px" src=3D"******" /></body>=
</html>
--=_f11764219c81f7cdd5e1729bb3b44ca6
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=ISO-8859-1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www=
=2Ew3.org/TR/REC-html40/loose.dtd">
<html><body><p>test ?î??îâ</p>
<p> </p>
test<br>
abcd<br>
test semnatura<img height=3D"1px" width=3D"1px" src=3D"******" /></body>=
</html>
--=_f11764219c81f7cdd5e1729bb3b44ca6--
content-type ヘッダーなしで送信すると、電子メールは問題なく送信されますが、分音記号用に utf-8 でエンコードする必要があることに注意してください。