FuelPHP - Gestione della posta elettronica
La funzionalità di posta elettronica è la funzionalità più richiesta in un framework web. FuelPHP fornisce un'elegante classe di posta elettronica in bundle come pacchetto. Viene utilizzato per inviare semplici messaggi di posta elettronica in testo normale e avanzati in formato RTF con più allegati. Supporta le seguenti funzionalità: posta in testo normale, posta HTML, allegati e allegati in linea.
Configurazione
Per abilitare la funzionalità di posta elettronica nell'applicazione, è sufficiente caricare il pacchetto di posta elettronica come specificato di seguito nel file di configurazione principale, fuel / app / config / config.php.
'always_load' => array ( 
   'packages' => array ( 
      'email', 
   ), 
), 
    Un'altra opzione è caricare il pacchetto di posta elettronica, il controller stesso come segue.
\Package::load('email'); 
    L'impostazione della posta elettronica può essere eseguita nel file di configurazione principale e alcune delle opzioni importanti sono le seguenti,
driver - Driver di posta elettronica come smtp
is_html - Indica se inviare o meno la posta come contenuto HTML
priority - Priorità dell'email
smtp.host - Host del server SMTP
smtp.port - Porta del server SMTP
smtp.username - Nome utente del server SMTP
smtp.password - Password del server SMTP
smtp.timeout - Timeout SMTP
smtp.starttls - Se il server SMTP necessita del comando STARTTLS
API email
Di seguito sono riportate le API fornite dall'email e dalla classe del driver di posta elettronica.
fucina
Scopo: creare un'istanza del driver di posta elettronica. Crea il driver in base alla configurazione o all'input che riceve. Il driver di posta elettronica fornisce funzionalità per creare e inviare posta. Alcuni dei possibili driver di posta elettronica sonosmtp, sendmail, mailgun, e mandrill.
Parameter - Nessuno o una serie di dettagli di configurazione
Returns - Restituisce l'oggetto Email_Driver
Per esempio,
$email = \Email::forge();  
$email = \Email::forge (array( 
   'driver' => 'smtp', 
)); 
    corpo
Purpose - Per impostare il corpo del messaggio
Parameter - $ body - corpo del messaggio
Returns - Restituisce l'istanza corrente
Per esempio,
$email = \Email::forge(); 
$email->body('Body message');  
//or pass it a View 
$email->body(\View::forge('my/view', $data); 
    alt_body
Purpose - Per impostare il corpo del messaggio alternativo
Parameter - $ alt_body - corpo del messaggio alternativo
Returns - Restituisce l'istanza corrente
Per esempio,
$email = \Email::forge(); 
$email->alt_body('Body message');  
//or pass it a View 
$email->alt_body(\View::forge('my/view', $data); 
    priorità
Purpose - Per impostare la priorità della posta
Parameter -
$priority- valore della priorità. Le opzioni sono:
a. \Email::P_LOWEST 
* \Email::P_LOW 
* \Email::P_NORMAL 
* \Email::P_HIGH 
* \Email::P_HIGHEST 
    Returns - Restituisce l'istanza corrente
Per esempio,
$email = \Email::forge(); 
$email->priority(\Email::P_HIGHEST); 
    html_body
Purpose - Per impostare il corpo del messaggio in formato HTML
Parameter -
$html - corpo del messaggio in HTML;
generate_alt - se generare un messaggio alternativo;
auto_attach - se incorporare o meno l'immagine
Returns - Restituisce l'istanza corrente
Per esempio,
$email = \Email::forge();  
// Do generate the alt body, but don't auto attach images. 
$email->html_body(\View::forge('welcome/email', $data), true, false); 
    a partire dal
Purpose - Per impostare l'indirizzo del mittente
Parameters -
$from - dall'indirizzo di posta elettronica;
$name - Nome del mittente
Returns - Restituisce l'istanza corrente
Per esempio,
$email = \Email::forge(); 
$email->from('[email protected]', 'My Name'); 
    soggetto
Purpose - Per impostare l'oggetto del messaggio
Parameter - $ subject - oggetto del messaggio di posta elettronica
Returns - Restituisce l'istanza corrente
Per esempio,
$email = \Email::forge(); 
$email->subject('Suject of the mail message'); 
    per
Purpose - Per impostare l'indirizzo e-mail del destinatario
Parameters -
$email - indirizzo e-mail o matrice di indirizzi e-mail;
$name - nome del destinatario
Returns - Restituisce l'istanza corrente
Per esempio,
$email = \Email::forge();  
$email->to('[email protected]', 'My Dear Name'); 
$email->to (array( 
   '[email protected]', 
   '[email protected]' => 'My Dear friend', 
)); 
    intestazione
Purpose - Per impostare un'intestazione personalizzata per il messaggio di posta elettronica
Parameters -
$header - tipo di intestazione o matrice di intestazione;
$value - valore dell'intestazione
Returns - Restituisce l'istanza corrente
Per esempio,
$email = \Email::forge(); 
$email->header('X-SMTPAP', 'XXXXXXXX'); 
$email>reply_to (array( 
   'X-SMTPAP'  => 'XXXXXX', 
   'X-SMTPAP2' > 'XXXXXA',
)); 
    allegare
Purpose - Per allegare un file al messaggio di posta elettronica
Parameters-
$file - percorso del file;
$inline - se allegare o meno il file in linea;
$cid - identificatore di contenuto;
$mime - Tipo MIME del file allegato;
$name - sostituzione del nome del file allegato
Returns - Restituisce l'istanza corrente
Per esempio,
$email = \Email::forge();
$email>attach(DOCROOT.'attachments/sample_attachment.pdf'); 
    Spedire
Purpose - Per inviare la posta.
Parameter -
$validate - se convalidare gli indirizzi email
Returns - vero o falso
Per esempio,
$email = \Email::forge(); 
try{ 
   $email->send(); 
} catch(\EmailSendingFailedException $e) { 
   // The driver could not send the mail. 
} catch(\EmailValidationFailedException $e) { 
   // One or more email addresses failed validation. 
} 
    Esempio di email funzionante
Usiamo l'API appresa nel capitolo precedente e creiamo un semplice codice per inviare un messaggio. Di seguito è riportato il codice più semplice per inviare un messaggio.
$email = Email::forge(); 
$email->from('[email protected]', 'person1'); 
$email->to('[email protected]', 'person2'); 
$email->subject('Add something'); 
$email->body('contents of mail'); $email->send();