我想發送一些關於從codeigniter庫發送的電子郵件的額外信息。有什麼辦法可以配置或添加這個?在codeigniter電子郵件中添加額外的標題信息
我想分類從我的網站發送的所有郵件。我需要包含用於跟蹤的sendgrid類別標頭。
我想發送一些關於從codeigniter庫發送的電子郵件的額外信息。有什麼辦法可以配置或添加這個?在codeigniter電子郵件中添加額外的標題信息
我想分類從我的網站發送的所有郵件。我需要包含用於跟蹤的sendgrid類別標頭。
CodeIgniter電子郵件類不允許您手動設置標題。但是,您可以通過擴展它並添加一個允許您設置sendgrid標題的新函數來更改此設置。
見笨手冊中的「擴展的本地庫」部分:
http://ellislab.com/codeigniter/user-guide/general/creating_libraries.html
這裏有新的電子郵件類的代碼可能是什麼樣子。
class MY_Email extends CI_Email {
public function __construct(array $config = array())
{
parent::__construct($config);
}
public function set_header($header, $value){
$this->_headers[$header] = $value;
}
}
那麼你可以使用新的電子郵件類這樣的設置標題:
$this->email->set_header($header, $value);
本節會解釋可以被傳遞到SendGrid什麼標題: http://sendgrid.com/docs/API%20Reference/SMTP%20API/
好吧,我只想在這裏改進最好的答案。 Credit歸屬於@Tekniskt,這裏唯一的區別是你可能在/application/config/email.php中設置的設置會被忽略,這會傷害你,特別是如果你使用自定義的STMP設置。
下面是類的完整代碼MY_Email.php我從上面的答案改進:
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;
}
}
希望它能幫助! :)
我做了我的測試,它似乎現在包含/config/email.php並設置正確傳遞。
乾杯和謝謝你的答案! :)
傳遞$config
參數
class MY_Email extends CI_Email
{
public function __construct(array $config = array())
{
parent::__construct($config);
}
public function set_header($header, $value)
{
$this->_headers[ $header ] = $value;
}
}
設置自定義標題爲
$this->email->set_header($header, $value);
感謝您的解釋... – 2012-01-30 11:09:33
我已經用這種方法成功地新頭添加到傳出郵件。但是,當我使用它時,它不再注意包含smtp設置的email.php配置文件。有兩種方法可以做到嗎? – Gortron 2013-12-01 12:28:29
你是對的@Gortron,當你使用這個類,你失去了config/email.php的設置;我解決它的方法是從原始類複製整個CONSTRUCT()函數,不要執行parent :: __ construct();不知道爲什麼發生這種情況,但是當我複製完整的構造函數時,它就可以工作。我會在下面提供另一個答案,因爲整個代碼的評論太短了:) – 2014-02-11 14:26:29