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