2013-06-25 10 views
2

У меня есть небольшая проблема. Я использую, чтобы отправить почту на мой пользовательский модуль этот кусок кода:Проблема с Magento с электронной почтой charset

$content = 'Wiadomość testowa ąśźć'; 

$mail = Mage::getModel('core/email'); 
     $mail->setToName($name); 
     $mail->setToEmail($email); 
     $mail->setBody($content); 
     $mail->setSubject($subject); 
     $mail->setFromEmail('[email protected]'); 
     $mail->setFromName("Test"); 
     $mail->setType('html'); 

     try { 
      $mail->send(); 
      Mage::getSingleton('customer/session')->setData('success',Mage::helper('adminhtml')->__('Your request has been sent')); 
     } 
     catch (Exception $e) { 
      Mage::getSingleton('customer/session')->setData('error',Mage::helper('adminhtml')->__('Unable to send email.')); 
     } 

Как я могу установить UTF-8 кодировку перед отправкой электронной почты в Magento почты функции. ? Я получаю электронную почту без кодировки utf-8 в теле письма.

SOLVED Я создал функцию sendZendMail в помощнике. Я использовал эту функцию, вместо Magento core/email:

public function sendZendMail($name,$email,$subject,$content){ 
    $mail = new Zend_Mail('UTF-8'); 
    $mail->setBodyHtml($content); 
    $mail->setFrom('[email protected]'); 
    $mail->addTo($email, 'No reply'); 
    $mail->setSubject($subject); 
    try { 
     $mail->send(); 
     Mage::getSingleton('core/session')->addSuccess('Mail was sucessfully send.'); 
    } 
    catch(Exception $ex) { 
     Mage::getSingleton('core/session')->addError('Unable to send email.'); 
    }  
} 

ответ

2

Кристофф, у меня была такая же проблема, прежде чем с португальцами, который также имеет специальные символы. Я отсортировал его, используя функцию htmlentities() для акцентированных слов. Почтовый объект Zend немного заторможен. Я надеюсь, что это помогает.