Alright , Solo quiero mejorar la mejor respuesta aquí. El crédito va a @Tekniskt, y la única diferencia aquí es que se ignoran las configuraciones que podría tener en /application/config/email.php, lo que duele, especialmente si está utilizando configuraciones personalizadas de STMP.
Aquí está el código completo de la clase MY_Email.php He mejorado de la respuesta anterior:
class MY_Email extends CI_Email {
public function __construct($config = array())
{
if (count($config) > 0)
{
$this->initialize($config);
}
else
{
$this->_smtp_auth = ($this->smtp_user == '' AND $this->smtp_pass == '') ? FALSE : TRUE;
$this->_safe_mode = ((boolean)@ini_get("safe_mode") === FALSE) ? FALSE : TRUE;
}
log_message('debug', "Email Class Initialized");
}
// this will allow us to add headers whenever we need them
public function set_header($header, $value){
$this->_headers[$header] = $value;
}
}
espero que ayude! :)
Hice mi prueba, y parece que ahora /config/email.php está incluido y la configuración se pasa correctamente.
¡Salud y gracias por la respuesta! :)
Gracias por la explicación ... –
He utilizado este método con éxito para añadir nuevas cabeceras de los mensajes salientes. Sin embargo, cuando lo uso, ya no presta atención al archivo de configuración email.php que contiene la configuración smtp. ¿Hay alguna forma de hacer ambas cosas? – Gortron
Tienes razón @Gortron, cuando usas esta clase, pierdes la configuración de config/email.php; la forma en que lo resolví, es copiar toda la función CONSTRUCT() de la clase original, no hacer parent :: __ construct(); No estoy seguro de por qué está sucediendo eso, pero cuando copio el constructor completo, funciona. Voy a hacer otra respuesta a continuación, porque los comentarios son demasiado cortos para todo el código :) –