CodeIgniter - Envoi d'un e-mail
L'envoi d'e-mails dans CodeIgniter est beaucoup plus facile. Vous configurez également les préférences concernant les e-mails dans CodeIgniter. CodeIgniter fournit les fonctionnalités suivantes pour l'envoi d'e-mails -
- Protocoles multiples - Mail, Sendmail et SMTP
- Chiffrement TLS et SSL pour SMTP
- Plusieurs destinataires
- CC et BCC
- Courriel HTML ou texte en clair
- Attachments
- Habillage de mots
- Priorities
- Mode BCC Batch, permettant de diviser de grandes listes de diffusion en petits lots BCC.
- Outils de débogage des e-mails
La classe Email a les fonctions suivantes pour simplifier le travail d'envoi d'e-mails.
SN | Syntaxe | Paramètres | Revenir | Type de retour |
---|---|---|---|---|
1 | from ( $ from [, $ name = '' [, $ return_path = NULL ]]) | $from( chaîne ) - Adresse e-mail «De» $name( chaîne ) - Nom d'affichage «De» $return_path( chaîne ) - Adresse e-mail facultative vers laquelle rediriger les e-mails non livrés |
Instance CI_Email (chaînage de méthodes) | CI_Email |
2 | reply_to ( $ replyto [, $ name = '' ]) | $replyto( string ) - Adresse e-mail pour les réponses $name( string ) - Nom d'affichage de l'adresse e-mail de réponse |
Instance CI_Email (chaînage de méthodes) | CI_Email |
2 | à ( $ à ) | $to( mixte ) - Chaîne délimitée par des virgules ou un tableau d'adresses e-mail |
Instance CI_Email (chaînage de méthodes) | CI_Email |
3 | cc ( $ cc ) | $cc( mixte ) - Chaîne délimitée par des virgules ou un tableau d'adresses e-mail |
Instance CI_Email (chaînage de méthodes) | CI_Email |
4 | cci ( $ bcc [, $ limite = '' ]) | $bcc( mixte ) - Chaîne délimitée par des virgules ou un tableau d'adresses e-mail $limit( int ) - Nombre maximum d'e-mails à envoyer par lot |
Instance CI_Email (chaînage de méthodes) | CI_Email |
5 | sujet ( $ sujet ) | $subject( string ) - Ligne d'objet de l'e-mail |
Instance CI_Email (chaînage de méthodes) | CI_Email |
6 | message ( $ body ) | $body( string ) - Corps du message électronique |
Instance CI_Email (chaînage de méthodes) | CI_Email |
sept | set_alt_message ( $ str ) | $str( string ) - Autre corps du message électronique |
Instance CI_Email (chaînage de méthodes) | CI_Email |
8 | set_header ( $ header, $ value ) | $header( string ) - Nom de l'en-tête $value( string ) - Valeur d'en-tête |
Instance CI_Email (chaînage de méthodes) | CI_Email |
9 | clear ([ $ clear_attachments = FALSE ]) | $clear_attachments( booléen ) - Effacer ou non les pièces jointes |
Instance CI_Email (chaînage de méthodes) | CI_Email |
dix | envoyer ([ $ auto_clear = TRUE ]) | $auto_clear( booléen ) - Indique s'il faut effacer automatiquement les données du message |
Instance CI_Email (chaînage de méthodes) | CI_Email |
11 | attach ($ filename [, $ disposition = '' [, $ newname = NULL [, $ mime = '']]]) | $filename( string ) - Nom du fichier $disposition( chaîne ) - 'disposition' de la pièce jointe. La plupart des clients de messagerie prennent leur propre décision, quelle que soit la spécification MIME utilisée ici. iana $newname( string ) - Nom de fichier personnalisé à utiliser dans l'e-mail $mime( chaîne ) - type MIME à utiliser (utile pour les données tamponnées) |
Instance CI_Email (chaînage de méthodes) | CI_Email |
12 | attachment_cid ( $ filename ) | $filename( chaîne ) - Nom du fichier de pièce jointe existant |
ID de contenu de la pièce jointe ou FALSE si non trouvé | chaîne |
Envoi d'un e-mail
Pour envoyer un e-mail à l'aide de CodeIgniter, vous devez d'abord charger la bibliothèque d'e-mails en utilisant ce qui suit -
$this->load->library('email');
Après avoir chargé la bibliothèque, exécutez simplement les fonctions suivantes pour définir les éléments nécessaires à l'envoi d'un e-mail. lefrom() La fonction est utilisée pour définir - à partir de l'endroit où l'e-mail est envoyé et to()est utilisée - à qui l'e-mail est envoyé. lesubject() et message() La fonction est utilisée pour définir l'objet et le message de l'e-mail.
$this->email->from('[email protected]', 'Your Name');
$this->email->to('[email protected]');
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');
Après cela, exécutez le send() comme indiqué ci-dessous pour envoyer un e-mail.
$this->email->send();
Exemple
Créer un fichier de contrôleur Email_controller.php et enregistrez-le dans 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 = "[email protected]";
$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');
}
}
?>
Créez un fichier de vue appelé email_form.php et enregistrez-le à 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>
Apportez les modifications dans le routes.php déposer dans application/config/routes.php et ajoutez la ligne suivante à la fin du fichier.
$route['email'] = 'Email_Controller';
Exécutez l'exemple ci-dessus en visitant le lien suivant. Remplacez yoursite.com par l'URL de votre site.
http://yoursite.com/index.php/email