CodeIgniter - Invio di e-mail

L'invio di e-mail in CodeIgniter è molto più semplice. Puoi anche configurare le preferenze relative alla posta elettronica in CodeIgniter. CodeIgniter fornisce le seguenti funzionalità per l'invio di e-mail:

  • Protocolli multipli: posta, Sendmail e SMTP
  • Crittografia TLS e SSL per SMTP
  • Più destinatari
  • CC e BCC
  • Email HTML o in testo normale
  • Attachments
  • Word wrapping
  • Priorities
  • Modalità batch BCC, che consente di suddividere elenchi di e-mail di grandi dimensioni in piccoli batch BCC.
  • Strumenti di debug della posta elettronica

La classe Email ha le seguenti funzioni per semplificare il lavoro di invio di email.

SN Sintassi Parametri Ritorno Tipo di ritorno
1 from ( $ from [, $ name = '' [, $ return_path = NULL ]])

$from( stringa ) - Indirizzo e-mail "Da"

$name( stringa ) - Nome visualizzato "Da"

$return_path( stringa ) - Indirizzo e-mail opzionale a cui reindirizzare i messaggi di posta elettronica non consegnati

Istanza CI_Email (concatenamento di metodi) CI_Email
2 reply_to ( $ replyto [, $ name = '' ])

$replyto( stringa ) - Indirizzo e-mail per le risposte

$name( stringa ): nome visualizzato per l'indirizzo e-mail di risposta

Istanza CI_Email (concatenamento di metodi) CI_Email
2 a ( $ a )

$to( misto ): stringa delimitata da virgole o matrice di indirizzi e-mail

Istanza CI_Email (concatenamento di metodi) CI_Email
3 cc ( $ cc )

$cc( misto ): stringa delimitata da virgole o matrice di indirizzi e-mail

Istanza CI_Email (concatenamento di metodi) CI_Email
4 bcc ( $ bcc [, $ limit = '' ])

$bcc( misto ): stringa delimitata da virgole o matrice di indirizzi e-mail

$limit( int ) - Numero massimo di e-mail da inviare per batch

Istanza CI_Email (concatenamento di metodi) CI_Email
5 soggetto ( $ soggetto )

$subject( stringa ) - Riga dell'oggetto dell'e-mail

Istanza CI_Email (concatenamento di metodi) CI_Email
6 messaggio ( $ body )

$body( stringa ) - Corpo del messaggio di posta elettronica

Istanza CI_Email (concatenamento di metodi) CI_Email
7 set_alt_message ( $ str )

$str( stringa ): corpo del messaggio di posta elettronica alternativo

Istanza CI_Email (concatenamento di metodi) CI_Email
8 set_header ( $ intestazione, $ valore )

$header( stringa ): nome dell'intestazione

$value( stringa ): valore dell'intestazione

Istanza CI_Email (concatenamento di metodi) CI_Email
9 cancella ([ $ clear_attachments = FALSE ])

$clear_attachments( bool ) - Indica se cancellare o meno gli allegati

Istanza CI_Email (concatenamento di metodi) CI_Email
10 invia ([ $ auto_clear = TRUE ])

$auto_clear( bool ) - Indica se cancellare automaticamente i dati del messaggio

Istanza CI_Email (concatenamento di metodi) CI_Email
11 allegare ($ nomefile [, $ disposition = '' [, $ newname = NULL [, $ mime = '']]])

$filename( stringa ) - Nome del file

$disposition( stringa ) - "disposizione" dell'allegato. La maggior parte dei client di posta elettronica prende la propria decisione indipendentemente dalla specifica MIME utilizzata qui. iana

$newname( stringa ): nome del file personalizzato da utilizzare nell'e-mail

$mime( stringa ) - Tipo MIME da utilizzare (utile per i dati memorizzati nel buffer)

Istanza CI_Email (concatenamento di metodi) CI_Email
12 allegato_cid ( $ nomefile )

$filename( stringa ): nome del file allegato esistente

Content-ID allegato o FALSE se non trovato corda

Invio di un'e-mail

Per inviare un'e-mail utilizzando CodeIgniter, devi prima caricare la libreria delle e-mail utilizzando quanto segue:

$this->load->library('email');

Dopo aver caricato la libreria, è sufficiente eseguire le seguenti funzioni per impostare gli elementi necessari per inviare un'e-mail. Ilfrom() viene utilizzata per impostare - da dove viene inviata l'e-mail e to()viene utilizzata la funzione: a chi viene inviata l'email. Ilsubject() e message() viene utilizzata per impostare l'oggetto e il messaggio dell'email.

$this->email->from('[email protected]', 'Your Name');
$this->email->to('[email protected]');
 
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');

Dopodiché, esegui il file send() funzione come mostrato di seguito per inviare un'e-mail.

$this->email->send();

Esempio

Crea un file controller Email_controller.php e salvalo in 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'); 
      } 
   } 
?>

Crea un file di visualizzazione chiamato email_form.php e salvalo in 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>

Apporta le modifiche nel file routes.php file in formato application/config/routes.php e aggiungi la seguente riga alla fine del file.

$route['email'] = 'Email_Controller';

Eseguire l'esempio precedente visitando il seguente collegamento. Sostituisci yoursite.com con l'URL del tuo sito.

http://yoursite.com/index.php/email