This topic is about CodeIgniter – Sending Email.
Sending email in CodeIgniter is much easier. You also configure the preferences regarding email in CodeIgniter. CodeIgniter provides following features for sending emails β
- Multiple Protocols β Mail, Sendmail, and SMTP
- TLS and SSL Encryption for SMTP
- Multiple recipients
- CC and BCCs
- HTML or Plaintext email
- Attachments
- Word wrapping
- Priorities
- BCC Batch Mode, enabling large email lists to be broken into small BCC batches.
- Email Debugging tools
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 |
Sending an Email
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();
Example
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
In this topic we learned aboout CodeIgniter – Sending Email. To know more, Click Here.
Pingback: CodeIgniter - File Uploading - Adglob Infosystem Pvt Ltd
Appreciate you sharing, great blog post.Really thank you!