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();