10

Zend_Mail次のコードを使用してメールを送信しようとしています。

 function sendMail() {

     $config = array('auth' => 'login',
                'username' => 'UserName',
                'password' => 'Password',
                'port'=>'27');    

    $mail = new Zend_Mail(); 

    $mail->setBodyText($mailBody);

    $mail->setFrom('example@host.com', 'The Company Name');
    $mail->addTo('example@host.com', 'Recipient Name');
    $mail->setSubject('Mail subject');    
    $mail->send(new Zend_Mail_Transport_Smtp('example@server.com', $config));
}

問題は、$mailBodyフランス語の文字があることです。例えば:

Merci d'avoir passé commande avec Lovre. Voici le récapitulatif de votre commande

送信されたメールを表示すると、同じ行が次のように表示されます。

Merci d'avoir pass? commande avec Lovre. Voici le r?capitulatif de votre commande

アクセントは疑問符に置き換えられました! を使用してメール本文をエンコードしようとしましutf8_encodeたが、問題は解決しませんでした。

注: 本文の内容は、.txt を使用してテキスト ファイルから読み取られますfile_get_contents

4

2 に答える 2

24

Zend_Mail コンストラクターでエンコーディングを UTF-8 に設定する必要があります。

$mail = new Zend_Mail('UTF-8'); 

$mailBody に UTF-8 テキストが含まれていることも確認してください。

于 2012-02-01T14:46:10.863 に答える
1

使用 :

$mail->setBodyHtml();

それ以外の :

$mail->setBodyText();

問題はショートアウトです。

于 2012-02-01T10:21:30.147 に答える