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).