ci_model

Mattepuffo's logo
Inviare email con CodeIgniter

Inviare email con CodeIgniter

CodeIgniter è uno dei framewrok PHP più utilizzati; io lo stesso su due progetti e mi ci trovo bene.

Ne ho già parlato in altri articoli, e oggi vediamo come sia semplice inviare email.

Supponiamo di voler inviare dopo che l'utente ha inviato un form; nel caso specifico l'utente dovrà inserire la propria email con la quale si è registrato in modo da potergli reinviare la password (che si è dimenticato)

<div id="login">
    <?php echo validation_errors('<p class="error">', '</p>'); ?>
    <?php echo form_open('pwdrecovery/dorecover'); ?>
    <dl>
        <dt><label for="cl_email">Email:</label></dt>
        <dd><input type="text" name="cl_email" value="<?php echo set_value('cl_email'); ?>" autofocus /></dd>
    </dl>
    <dl>
        <dd><input type="submit" value="Send" name="submit" /></dd>
    </dl>
</form>
</div>

Viene richiamata la funzione doRecover del controller PwdRecovery:

public function doRecover() {
        $this->load->library('form_validation');
        $this->form_validation->set_rules('cl_email', 'Email', 'required|trim|valid_email');
        if ($this->form_validation->run() == FALSE) {
            $data = array();
            $data['title'] = 'Login';
            $this->load->view('header', $data);
            $this->load->view('pwd_recovery_view', $data);
            $this->load->view('footer');
        } else {
            $this->load->model('email_model');
            $this->email_model->sendEmail($this->input->post('cl_email'), 'Password', 'La tua nuova password è NUOVA_PASSWORD');
            redirect('home');
        }
    }

Carico la libreria form_validation per validare il form (è obbligatorio mettere una email ben formata).