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.phpand 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
0 comments:
Post a Comment
Thanks