Nous allons aujourd'hui envoyer un mail grâce à CodeIgniter.
Pour cela il faut créer un fichier email.php dans le répertoire application/config/
Dans ce fichier plusieurs méthodes pour envoyer un mail soit via "mail", "sendmail" ou via "smtp".
Nous allons utiliser un compte mail donc le SMTP.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.domaine.com';
$config['smtp_port'] = 25;
$config['smtp_user'] = 'mail@domaine.com';
$config['smtp_pass'] = 'motdepasseducomptemail';
Créer ensuite un contrôleur par exemple controllers/home.php
Dans votre home vous allez créer la méthode "send" qui permet l'envoi du mail.
<?php
class Home extends Controller {
function Home()
{
parent::Controller();
}
function index()
{
// On charge la vue index
$this->load->view('index');
}
function mail()
{
$this->load->library('email');
$this->email->set_newline("\r\n");
$this->email->from('email@domaine.com', 'Prénom NOM');
$this->email->to('destinataire@domaine.com');
$this->email->subject('Titre du mail');
$this->email->message('Contenu du mail.');
if($this->email->send()) {
echo 'E-mail envoyé !';
} else {
echo 'Oup\'s ! Il y a eu un soucis lors de l\'envoi !';
}
}
}
Ce code fonctionne parfaitement en "plain/text".
Pour envoyer un mail au format html modifier votre fichier config/email.php :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
// Ajout du format html (mail en html)
$config['mailtype'] = 'html';
// Ajout de l'encodage du mail
$config['charset'] = 'iso-8859-1';
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.domaine.com';
$config['smtp_port'] = 25;
$config['smtp_user'] = 'mail@domaine.com';
$config['smtp_pass'] = 'motdepasseducomptemail';
Et dans votre contrôleur modifier le contenu du message par un contenu avec des balises html comme ceci par exemple :
$this->email->message('<p>Contenu du mail <b>en gras</b>.</p>');
Impossible pour nous d'envoyer un mail au format HTML avec CodeIgniter pour l'instant !
J'ai laissé un message sur le forum de Code Igniter pour voir si ça vient pas du framework directement ou moi qui ai mal compris un truc
Edit : Il fallait ajouter le type d'encodage du mail pour pouvoir envoyer au format HTML
2 commentaires pour “Envoi de mail avec CodeIgniter plain/text [edit ET text/html]”
bob
Salut pas mal ton tuto
Dit moi tu sait comment faire pour l'inverse (recevoir des mail)?
ChoiZ
Le commentaire n'étais pas supprimé mais en cours de modération. Pareil pour le second...
Pour recevoir des mails c'est à dire faire un Webmail ?
Laisser un commentaire