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