Как отправить электронное письмо в коде base64 в CodeIgniter?

Я столкнулся с проблемой нечетного восклицательного знака в электронной почте. Для этого я тестировал отдельную почтовую обработку с кодировкой 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?

Редактировать:

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

Related of "Как отправить электронное письмо в коде base64 в CodeIgniter?"

 $config['_bit_depths'] = array('7bit', '8bit', 'base64'); $config['_encoding'] = 'base64'; 

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

Когда вы это сделаете, добавьте публичную функцию в _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');