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