Sending email in CodeIgniter is much easier. You also configure the preferences regarding email in CodeIgniter. CodeIgniter provides following features for sending emails −
Email class has the following functions to simplify the job of sending emails.
S.N. | Syntax | Parameters | Return | Return Type |
---|---|---|---|---|
1 | from($from[, $name = ''[, $return_path = NULL]]) |
$from (string) − “From” e-mail address $name (string) − “From” display name $return_path (string) − Optional email address to redirect undelivered e-mail to |
CI_Email instance (method chaining) | CI_Email |
2 | reply_to($replyto[, $name = '']) |
$replyto (string) − E-mail address for replies $name (string) − Display name for the reply-to e-mail address |
CI_Email instance (method chaining) | CI_Email |
2 | to($to) |
$to (mixed) − Comma-delimited string or an array of e-mail addresses |
CI_Email instance (method chaining) | CI_Email |
3 | cc($cc) |
$cc (mixed) − Comma-delimited string or an array of e-mail addresses |
CI_Email instance (method chaining) | CI_Email |
4 | bcc($bcc[, $limit = '']) |
$bcc (mixed) − Comma-delimited string or an array of e-mail addresses $limit (int) − Maximum number of e-mails to send per batch |
CI_Email instance (method chaining) | CI_Email |
5 | subject($subject) |
$subject (string) − E-mail subject line |
CI_Email instance (method chaining) | CI_Email |
6 | message($body) |
$body (string) − E-mail message body |
CI_Email instance (method chaining) | CI_Email |
7 | set_alt_message($str) |
$str (string) − Alternative e-mail message body |
CI_Email instance (method chaining) | CI_Email |
8 | set_header($header, $value) |
$header (string) − Header name $value (string) − Header value |
CI_Email instance (method chaining) | CI_Email |
9 | clear([$clear_attachments = FALSE]) |
$clear_attachments (bool) – Whether or not to clear attachments |
CI_Email instance (method chaining) | CI_Email |
10 | send([$auto_clear = TRUE]) |
$auto_clear (bool) − Whether to clear message data automatically |
CI_Email instance (method chaining) | CI_Email |
11 | attach($filename[, $disposition = ''[, $newname = NULL[, $mime = '']]]) |
$filename (string) − File name $disposition (string) − ‘disposition’ of the attachment. Most email clients make their own decision regardless of the MIME specification used here. iana $newname (string) − Custom file name to use in the e-mail $mime (string) − MIME type to use (useful for buffered data) |
CI_Email instance (method chaining) | CI_Email |
12 | attachment_cid($filename) |
$filename (string) − Existing attachment filename |
Attachment Content-ID or FALSE if not found | string |
To send an email using CodeIgniter, first you have to load email library using the following −
$this->load->library('email');
After loading the library, simply execute the following functions to set necessary elements to send an email. The from() function is used to set − from where the email is being sent and to() function is used − to whom the email is being sent. The subject() and message() function is used to set the subject and message of the email.
$this->email->from('your@example.com', 'Your Name'); $this->email->to('someone@example.com'); $this->email->subject('Email Test'); $this->email->message('Testing the email class.');
After that, execute the send() function as shown below to send an email.
$this->email->send();
Create a controller file Email_controller.php and save it in application/controller/Email_controller.php.
<?php class Email_controller extends CI_Controller { function __construct() { parent::__construct(); $this->load->library('session'); $this->load->helper('form'); } public function index() { $this->load->helper('form'); $this->load->view('email_form'); } public function send_mail() { $from_email = "your@example.com"; $to_email = $this->input->post('email'); //Load email library $this->load->library('email'); $this->email->from($from_email, 'Your Name'); $this->email->to($to_email); $this->email->subject('Email Test'); $this->email->message('Testing the email class.'); //Send mail if($this->email->send()) $this->session->set_flashdata("email_sent","Email sent successfully."); else $this->session->set_flashdata("email_sent","Error in sending Email."); $this->load->view('email_form'); } } ?>
Create a view file called email_form.php and save it at application/views/email_form.php
<!DOCTYPE html> <html lang = "en"> <head> <meta charset = "utf-8"> <title>CodeIgniter Email Example</title> </head> <body> <?php echo $this->session->flashdata('email_sent'); echo form_open('/Email_controller/send_mail'); ?> <input type = "email" name = "email" required /> <input type = "submit" value = "SEND MAIL"> <?php echo form_close(); ?> </body> </html>
Make the changes in the routes.php file in application/config/routes.php and add the following line at the end of the file.
$route['email'] = 'Email_Controller';
Execute the above example by visiting the following link. Replace the yoursite.com with the URL of your site.
http://yoursite.com/index.php/email