Un Email helper afin de travailler avec la librarie Swift email . Vous êtes obligé d'avoir la librarie Swiftmailer dans le dossier “vendor” si vous voulez que le helper fonctionne. La structure du dossier doit être:
vendor +- swift | +- Swift | | ... | | ... | -- Swift.php | -- EasySwift.php
La configuration de swiftmailer s'effectue à application/config/email.php file, si le fichier n'y est pas, prenez en un de system/config and copiez-le dans le dossier application (regardez cascading filesystem):
// Les drivers valides sont: native, sendmail, smtp $config['driver'] = 'native'; // Options du driver: $config['options'] = NULL;
config['driver'] définis le driver de SwiftMailer. Les drivers valies sont:
$config['options'] contiens les paramètres spécifiques au driver.
// Connection smtp standard $config['options'] = array('hostname'=>'yourhostname', 'port'=>'25', 'username'=>'yourusername', 'password'=>'yourpassword'); // Connections SMTP sécuritaires $config['options'] = array('hostname'=>'smtp.gmail.com', 'port'=>'465', 'username'=>'yourusername', 'password'=>'yourpassword', 'encryption' => 'tls');
$config['options'] = '/path/to/sendmail';
Pour envoyer un email basique, utilisez le code ci-dessous:
$to = 'à@exemple.com'; // L'Addresse peut être aussi un array('à@exemple.com', 'Nom') $from = 'de@exemple.com'; $subject = 'Ceci est un sujet exemple'; $message = 'Ceci est un message <strong>d'exemple</strong>'; email::send($to, $from, $subject, $message, TRUE);
Afin d'envoyer des emails avancés vous aurez besoin d'utiliser la méthode Swift mailer . Le code ci-dessous montre comment envoyer un email avec un fichier joint et des destinataires multiples. Pour les emails complexes, les méthodes et classes Swiftmailer seront utilisés directement. email::connect pourra toujours être utilisé afin de charger la librarie Swiftmailer library et définir les paramètres appropriés écrits dans le fichier config config/email.php.
Cet exemple ne fonctionne plus correctement désormais à cause d'un bug de Swift Mailer
// Utilisez la méthode connect() afin de charger Swiftmailer et connect en utilisant les paramètres définis dans le fichier de config email $swift = email::connect(); // De, subject(Objet) et le message HTML $from = 'de@exemple.com'; $subject = 'Backup: ' . date("j/m/A"); $message = 'Ceci est le <b>backup</b> pour ' . date("j/m/A"); // Construit la liste des destinataires $recipients = new Swift_RecipientList; $recipients->addTo('to1@exemple.com'); $recipients->addTo('to2@exemple.com'); // Construit le message HTML $message = new Swift_Message($subject, $message, "text/html"); // Le fichier joint $swiftfile = new Swift_File('/backups/dump-' . date("j-m-A") . '.tar.gz'); $attachment = new Swift_Message_Attachment($swiftfile); $message->attach($attachment); if ($swift->send($message, $recipients, $from)) { // Success } else { // Echec } // Disconnect $swift->disconnect();
'connect' crèe une instance SwiftMailer en accord aux driver et paramètres définis dans le fichier config.
'send' envoie un e-mail en utilisant les paramètres définis. Ces paramètres sont: