FuelPHP - Gestion des e-mails
La fonctionnalité de messagerie est la fonctionnalité la plus demandée dans un cadre Web. FuelPHP fournit une classe de courrier électronique élégante regroupée sous forme de package. Il est utilisé pour envoyer des e-mails simples en texte brut ainsi que des e-mails avancés en texte enrichi avec plusieurs pièces jointes. Il prend en charge les fonctionnalités suivantes: e-mails en texte brut, e-mails HTML, pièces jointes et pièces jointes en ligne.
Configuration
Pour activer la fonctionnalité de messagerie dans l'application, nous devons simplement charger le package de messagerie comme spécifié ci-dessous dans le fichier de configuration principal, fuel / app / config / config.php.
'always_load' => array (
'packages' => array (
'email',
),
),
Une autre option consiste à charger le package de courrier électronique, le contrôleur lui-même comme suit.
\Package::load('email');
Le paramètre de messagerie peut être effectué dans le fichier de configuration principal et certaines des options importantes sont les suivantes,
driver - Pilote de messagerie tel que smtp
is_html - Envoyer ou non des e-mails sous forme de contenu HTML
priority - Priorité de l'email
smtp.host - Hôte du serveur SMTP
smtp.port - Port du serveur SMTP
smtp.username - Nom d'utilisateur du serveur SMTP
smtp.password - Mot de passe du serveur SMTP
smtp.timeout - Délai d'expiration SMTP
smtp.starttls - Si le serveur SMTP a besoin de la commande STARTTLS
API de messagerie
Voici l'API fournie par la classe de pilote de messagerie et de messagerie.
la forge
Objectif: créer une instance de pilote de messagerie. Il crée le pilote en fonction de la configuration ou de l'entrée qu'il reçoit. Le pilote de messagerie fournit des fonctionnalités pour créer et envoyer des e-mails. Certains des pilotes de messagerie possibles sontsmtp, sendmail, mailgun, et mandrill.
Parameter - Aucun ou tableau de détails de configuration
Returns - Renvoie l'objet Email_Driver
Par exemple,
$email = \Email::forge();
$email = \Email::forge (array(
'driver' => 'smtp',
));
corps
Purpose - Pour définir le corps du message
Parameter - $ body - corps du message
Returns - Renvoie l'instance actuelle
Par exemple,
$email = \Email::forge();
$email->body('Body message');
//or pass it a View
$email->body(\View::forge('my/view', $data);
alt_body
Purpose - Pour définir le corps du message alternatif
Parameter - $ alt_body - corps de message alternatif
Returns - Renvoie l'instance actuelle
Par exemple,
$email = \Email::forge();
$email->alt_body('Body message');
//or pass it a View
$email->alt_body(\View::forge('my/view', $data);
priorité
Purpose - Pour définir la priorité du courrier
Parameter -
$priority- valeur de la priorité. Les options sont -
a. \Email::P_LOWEST
* \Email::P_LOW
* \Email::P_NORMAL
* \Email::P_HIGH
* \Email::P_HIGHEST
Returns - Renvoie l'instance actuelle
Par exemple,
$email = \Email::forge();
$email->priority(\Email::P_HIGHEST);
html_body
Purpose - Pour définir le corps du message au format HTML
Parameter -
$html - corps du message en HTML;
generate_alt - s'il faut générer un autre message;
auto_attach - s'il faut intégrer l'image ou non
Returns - Renvoie l'instance actuelle
Par exemple,
$email = \Email::forge();
// Do generate the alt body, but don't auto attach images.
$email->html_body(\View::forge('welcome/email', $data), true, false);
de
Purpose - Pour définir l'adresse de départ
Parameters -
$from - depuis l'adresse e-mail;
$name - Nom de l'expéditeur
Returns - Renvoie l'instance actuelle
Par exemple,
$email = \Email::forge();
$email->from('[email protected]', 'My Name');
matière
Purpose - Pour définir l'objet du message
Parameter - $ subject - objet du message électronique
Returns - Renvoie l'instance actuelle
Par exemple,
$email = \Email::forge();
$email->subject('Suject of the mail message');
à
Purpose - Pour définir l'adresse e-mail du destinataire
Parameters -
$email - adresse e-mail ou tableau d'adresses e-mail;
$name - nom du destinataire
Returns - Renvoie l'instance actuelle
Par exemple,
$email = \Email::forge();
$email->to('[email protected]', 'My Dear Name');
$email->to (array(
'[email protected]',
'[email protected]' => 'My Dear friend',
));
entête
Purpose - Pour définir un en-tête personnalisé pour le message électronique
Parameters -
$header - type d'en-tête ou tableau d'en-tête;
$value - valeur de l'en-tête
Returns - Renvoie l'instance actuelle
Par exemple,
$email = \Email::forge();
$email->header('X-SMTPAP', 'XXXXXXXX');
$email>reply_to (array(
'X-SMTPAP' => 'XXXXXX',
'X-SMTPAP2' > 'XXXXXA',
));
attacher
Purpose - Pour joindre un fichier au message électronique
Parameters-
$file - chemin du fichier;
$inline - s'il faut joindre le fichier en ligne ou non;
$cid - identifiant de contenu;
$mime - Type MIME du fichier joint;
$name - remplacement du nom du fichier de pièce jointe
Returns - Renvoie l'instance actuelle
Par exemple,
$email = \Email::forge();
$email>attach(DOCROOT.'attachments/sample_attachment.pdf');
envoyer
Purpose - Pour envoyer le mail.
Parameter -
$validate - s'il faut valider les adresses e-mail
Returns - vrai ou faux
Par exemple,
$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.
}
Exemple d'e-mail de travail
Utilisons l'API apprise dans le chapitre précédent et créons un code simple pour envoyer un message. Voici le code le plus simple pour envoyer un message.
$email = Email::forge();
$email->from('[email protected]', 'person1');
$email->to('[email protected]', 'person2');
$email->subject('Add something');
$email->body('contents of mail'); $email->send();