-
Notifications
You must be signed in to change notification settings - Fork 7.6k
Richmail
Code Igniter Richmail Library version 0.1
By Jan Willem Penterman [email protected] (Genoil on codeigniter.com) September 29, 2006
Version 0.1 - File:richmail-0.1.zip Version 0.2 - File:MY_Email.zip (Updated for Code Igniter 1.5.3)
Features:
This library extends the Email library, adding the following functions:
- parse message body for images and add them as inline attachments
- caches base64 encoded attachments for better performance
Installation:
The directories inside this archive should look familiar enough to you to know where to put the files...
Usage example:
;
// Load Richmail library instead of 'email':
$this->load->library('richmail');
// Since it subclasses CI_Email, this is all the same:
$this->richmail->from('[email protected]', 'Sender');
$this->richmail->to('[email protected]', 'Recipient');
$this->richmail->subject('Richmail test');
// Load message like any CI view:
$message = $this->load->view("richmail_view", array(), true);
// Convert message to have images reference inline content-id's.
// $message is passed by reference, but is also returned if you
// don't understand what I'm talking about.
$this->richmail->inline($message);
// This is like Email again:
$this->richmail->message($message);
$this->richmail->send();
Notes:
-
Currently, only HTML image references are supported, no CSS. This is
because inline CSS background images aren't supported very well in HTML email anyway. -
The library assumes the host that serves the images is equal to the CI's base_url config var.
-
Base64 caching speeds up attachment building about 2 times, but I'm not too happy about having to duplicate the whole Email::_build_message() method.
-
It does not currently appear to support two inline images with the same name correctly - solve this by making sure all images have unique filenames.
This is the same Richmail class but updated to work with Code Igniter 1.5.3 File:MY_Email.zip
Just drop it into the /application/libraries directory and use as you would use the email class.
$this->load->library('email');
$email_config = array
(
'mailtype' => 'html',
'multipart' => 'related',
'base64cache' => false
);
$this->email->initialize($email_config);
// Since it subclasses CI_Email, this is all the same:
$this->email->from('[email protected]', 'Your Name');
$this->email->to('[email protected]');
$this->email->cc('[email protected]');
$this->email->bcc('[email protected]');
$this->email->subject('Email Test');
// Load message like any CI view:
$email_message = $this->load->view("email_message.html", array(), true);
// Convert message to have images reference inline content-id's.
$this->email->inline($email_message);
// This is like Email again:
$this->email->message($email_message);
$this->email->send();