How to fetch record from database and send it to email using codeigniter?

Member

by samara , in category: PHP Frameworks , a year ago

How to fetch record from database and send it to email using codeigniter?

Facebook Twitter LinkedIn Telegram Whatsapp

1 answer

Member

by ryleigh , a year ago

@samara 

To fetch a record from the database and send it to an email using CodeIgniter, you can follow the steps below:


Step 1: Configure SMTP in CodeIgniter


First, configure the SMTP settings in your CodeIgniter project. Open the "config.php" file located in the "application/config" folder and update the following SMTP settings:

1
2
3
4
5
6
7
8
9
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'your_smtp_host';
$config['smtp_port'] = 'your_smtp_port';
$config['smtp_user'] = 'your_smtp_username';
$config['smtp_pass'] = 'your_smtp_password';
$config['charset'] = 'utf-8';
$config['mailtype'] = 'html';
$config['newline'] = "
";


Replace "your_smtp_host", "your_smtp_port", "your_smtp_username", and "your_smtp_password" with your SMTP server details.


Step 2: Create a Model


Create a model to fetch the record from the database. Open the "Email_model.php" file located in the "application/models" folder and add the following code:

1
2
3
4
5
6
7
class Email_model extends CI_Model {

    public function getRecord() {
        $query = $this->db->get('your_table_name');
        return $query->result();
    }
}


Replace "your_table_name" with the name of the table from which you want to fetch the record.


Step 3: Create a Controller


Create a controller named "Email" to send the record to an email. Open the "Email.php" file located in the "application/controllers" folder and add the following code:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
class Email extends CI_Controller {

    public function index() {
        $this->load->library('email');
        $this->load->model('email_model');
        
        $record = $this->email_model->getRecord();
        $data['record'] = $record;
        
        $this->email->from('your_email@example.com', 'Your Name');
        $this->email->to('email@example.com');
        $this->email->subject('Database Record');
        $this->email->message($this->load->view('email_template', $data, true));
        
        if ($this->email->send()) {
            echo 'Email sent successfully.';
        } else {
            echo 'Email sending failed.';
        }
    }
}


Replace "your_email@example.com", "Your Name", and "email@example.com" with the appropriate email addresses.


Step 4: Create a View


Create a view named "email_template.php" to format the email content. In the "application/views" folder, create a file named "email_template.php" and add the following code:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<html>
<head>
    <title>Database Record</title>
</head>
<body>
    <h1>Database Record</h1>
    <?php foreach ($record as $row) : ?>
        <p>Name: <?php echo $row->name; ?></p>
        <p>Email: <?php echo $row->email; ?></p>
        <p>Phone: <?php echo $row->phone; ?></p>
    <?php endforeach; ?>
</body>
</html>


Customize the email template according to your needs.


Step 5: Run the Code


Finally, open a web browser and visit the following URL to trigger the email sending process:

1
http://localhost/your_project_name/index.php/email


Replace "your_project_name" with the name of your CodeIgniter project. If everything is set up correctly, the record fetched from the database will be sent to the specified email address.

Related Threads:

How to send email in Codeigniter using smtp?
How to send email using template in codeigniter?
How to fetch products from database using codeigniter framework?
How to send email in Codeigniter without smtp?
How to send email using smtp server?
How to send email using smtp in php?