These days, almost every PHP framework supports a well-developed email management library. CodeIgniter is no different, as it has a great email-sending class that ensures that CodeIgniter projects can send emails without difficulty.
This article will describe how to send emails in a CodeIgniter application using SMTP. I will use the well-known and maintained email-sending class.
Load CodeIgniter’s Email Class
First, load the CodeIgniter’s email library through the following code snippet:
$this->load->library('email');
Set Email Parameters
The next step is to set up the required fields for the custom email. these fields could be set up through several functions, including from() function takes two parameters – the email address of the sender and the name. to() function takes the email address of the recipient. The next two functions, subject() and message(), round up the requirements for sending emails in CodeIgniter. Here is how these functions are used in the code:
$this->email->from('[email protected]', 'Identification'); $this->email->to('[email protected]'); $this->email->subject('Send Email Codeigniter'); $this->email->message('The email send using codeigniter library');
Stop Wasting Time on Servers
Cloudways handle server management for you so you can focus on creating great apps and keeping your clients happy.
Once these functions are filled, the final step is to send the email by using the send() function.
$this->email->send();
Create the Controller
Create a controller file Sendingemail_controller.php and save it in the application/controller/. Add the following code to this file:
<?php class Sendingemail_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('contact_email_form'); } public function send_mail() { $from_email = "[email protected]"; $to_email = $this->input->post('email'); //Load email library $this->load->library('email'); $this->email->from($from_email, 'Identification'); $this->email->to($to_email); $this->email->subject('Send Email Codeigniter'); $this->email->message('The email send using codeigniter library'); //Send mail if($this->email->send()) $this->session->set_flashdata("email_sent","Congragulation Email Send Successfully."); else $this->session->set_flashdata("email_sent","You have encountered an error"); $this->load->view('contact_email_form'); } } ?>
Create the View
Create a view file called contact_email_form.php and save it in application/views/. Add the following code to it:
<html> <head> <title> Send Email Codeigniter </title> </head> <body> <?php echo $this->session->flashdata('email_sent'); echo form_open('/Sendingemail_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'] = 'Sendingemail_Controller';
Access the Email Application
Finally, Hit the following URL to access the application:
http://your-domain.com/index.php/email
Setting SMTP Configuration
As mentioned earlier, CodeIgniter fully supports different email protocols, including SMTP, through simple configuration options.
As you can see from the following code snippet, selecting the email protocol is a matter of setting a single configuration variable. In this code snippet, I have set the $config[‘protocol’] to SMTP for using the SMTP protocol.
<?php $this->load->library('email'); $config = array(); $config['protocol'] = 'smtp'; $config['smtp_host'] = 'xxx'; $config['smtp_user'] = 'xxx'; $config['smtp_pass'] = 'xxx'; $config['smtp_port'] = 25; $this->email->initialize($config); $this->email->set_newline("\r\n");
Summary
Adding email functionality to CodeIgniter applications deployed on any Web Hosting for PHP is simple to use in the email library. All you have to do is to set a few variables, and the email is set up. If you need any help sending emails in your CodeIgniter applications, leave a comment below, and I will get back to you.
Owais Khan
Owais works as a Marketing Manager at Cloudways (managed hosting platform) where he focuses on growth, demand generation, and strategic partnerships. With more than a decade of experience in digital marketing and B2B, Owais prefers to build systems that help teams achieve their full potential.