Как отправить электронное письмо в base64 кодировать в CodeIgniter? - PullRequest
2 голосов
/ 18 октября 2011

Я столкнулся с проблемой странный восклицательный знак в электронной почте. Для этого я проверил в отдельном почтовом функционале кодирование base64. Это работает нормально. Я установил заголовок, как это.

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$headers .= "Content-Transfer-Encoding:base64" . "\r\n"; 
// More headers
$headers .= 'From:'.$from. "\r\n";
$htmlcode = rtrim(chunk_split(base64_encode($msg))); 
$ret=mail($to,$subj,$htmlcode,$headers);

Теперь я хочу установить ту же опцию заголовка в CodeIgniter. Я пытался с опцией в конфигурации.

$_configure['_encoding']="base64";
$email= new Email($config);    

Но это не работает. Как установить заголовок, как указано выше, в CodeIgniter?

Edit:

В настоящее время используется только класс электронной почты CodeIgniter.

Ответы [ 2 ]

3 голосов
/ 02 ноября 2012
$config['_bit_depths'] = array('7bit', '8bit', 'base64');
$config['_encoding'] = 'base64';
0 голосов
/ 30 ноября 2011

Вы должны расширить класс Email, чтобы добавить это, это довольно легко сделать.

Когда вы это сделаете, добавьте публичную функцию в _set_header, так как она создаст для вас заголовок электронного письма.

Не проверено, но что-то вроде этого:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 

class MY_Email extends CI_Email {

    public function __construct()
    {
        parent::__construct();
    }

    public function set_header($header, $value) {
        parent::_set_header($header, $value);
    }
}

затем в вашем коде электронной почты, что-то вроде:

set_header ('_ encoding', 'base64');

...