W porządku , Chcę tylko poprawić najlepszą odpowiedź tutaj. Kredyt trafia do @Tekniskt, a jedyną różnicą jest to, że ustawienia, które możesz mieć w /application/config/email.php są ignorowane, co boli, szczególnie jeśli używasz niestandardowych ustawień STMP.
Oto pełny kod klasy MY_Email.php Mam poprawił się z odpowiedzią powyżej:
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;
}
}
Nadzieję, że to pomaga! :)
Zrobiłem mój test i wygląda na to, że teraz dołączono /config/email.php i ustawienia są poprawnie przekazywane.
Pozdrawiam i dziękuję za odpowiedź! :)
Dzięki za wyjaśnienie ... –
Użyłem tej metody z powodzeniem dodawać nowe nagłówki do wysyłanych maili. Jednak kiedy go używam, nie zwraca już uwagi na plik konfiguracyjny email.php, który przechowuje ustawienia smtp. Czy jest jakiś sposób na zrobienie obu? – Gortron
Masz rację, gdy używasz tej klasy @Gortron, tracisz ustawienia z pliku config/email.php; sposób, w jaki go rozwiązałem, polega na skopiowaniu całej funkcji CONSTRUCT() z oryginalnej klasy, nie wykonuj parent :: __ construct(); nie wiem, dlaczego tak się dzieje, ale kiedy kopiuję pełny konstruktor, działa. Podam kolejną odpowiedź poniżej, ponieważ komentarze są zbyt krótkie dla całego kodu :) –