0

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 ?&icirc;??&icirc;&acirc;</p>

<p>&nbsp;</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 ?&icirc;??&icirc;&acirc;</p>

<p>&nbsp;</p>
test<br>
abcd<br>
test semnatura<img height=3D"1px" width=3D"1px" src=3D"******" /></body>=
</html>

--=_f11764219c81f7cdd5e1729bb3b44ca6--

content-type ヘッダーなしで送信すると、電子メールは問題なく送信されますが、分音記号用に utf-8 でエンコードする必要があることに注意してください。

4

1 に答える 1

0

また、$mimeオブジェクトから取得する本文コンテンツのエンコーディングを設定する必要があります。

// set encoding and specify charsets
$mimeparams=array(); 
$mimeparams['text_encoding']="8bit";
$mimeparams['text_charset']="UTF-8";
$mimeparams['html_charset']="UTF-8";
$mimeparams['head_charset']="UTF-8"; 

// set the content
$mime->setTXTBody($text);
$mime->setHTMLBody($html);

// retrieve the body
$body = $mime->get($mimeparams); 
于 2013-02-22T16:37:37.850 に答える