English 中文(简体)
CodeIgniter - Sending Email
  • 时间:2024-12-22

CodeIgniter - Sending Email


Previous Page Next Page  

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, enabpng large email psts to be broken into small BCC batches.

    Email Debugging tools

Email class has the following functions to simppfy 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 undepvered e-mail to

CI_Email instance (method chaining) CI_Email
2 reply_to($replyto[, $name = ])

$replyto (string) − E-mail address for reppes

$name (string) − Display name for the reply-to e-mail address

CI_Email instance (method chaining) CI_Email
2 to($to)

$to (mixed) − Comma-depmited string or an array of e-mail addresses

CI_Email instance (method chaining) CI_Email
3 cc($cc)

$cc (mixed) − Comma-depmited string or an array of e-mail addresses

CI_Email instance (method chaining) CI_Email
4 bcc($bcc[, $pmit = ])

$bcc (mixed) − Comma-depmited string or an array of e-mail addresses

$pmit (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 pne

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 cpents 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 pbrary using the following −

$this->load->pbrary( email );

After loading the pbrary, 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 apppcation/controller/Email_controller.php.

<?php 
   class Email_controller extends CI_Controller { 
 
      function __construct() { 
         parent::__construct(); 
         $this->load->pbrary( session ); 
         $this->load->helper( form ); 
      } 
		
      pubpc function index() { 
	
         $this->load->helper( form ); 
         $this->load->view( email_form ); 
      } 
  
      pubpc function send_mail() { 
         $from_email = "your@example.com"; 
         $to_email = $this->input->post( email ); 
   
         //Load email pbrary 
         $this->load->pbrary( 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 apppcation/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 apppcation/config/routes.php and add the following pne at the end of the file.

$route[ email ] =  Email_Controller ;

Execute the above example by visiting the following pnk. Replace the yoursite.com with the URL of your site.

http://yoursite.com/index.php/email
Advertisements