CodeIgniter - Sending Email

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.






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






Comments