Email Helper (Aide Email)

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
  • Vous pouvez choisir de télécharger Swiftmailer en même temps que l'archive Kohana à la page de téléchargement
  • Ou vous pouvez manuellement le télécharger et l'extraire dans le dossier “vendor”.

Configuration

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;

Drivers

config['driver'] définis le driver de SwiftMailer. Les drivers valies sont:

  • native
  • sendmail
  • smtp

Options du driver

$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');
  • sendmail: Chemin exécutable ou le laissez vide si vous voulez que Swift auto détecte le chemin de sendmail.
$config['options'] = '/path/to/sendmail';

Exemples d'utilisation

Envoyer un email basique

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

Envoyer des emails complexes

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

Méthodes

connect()

'connect' crèe une instance SwiftMailer en accord aux driver et paramètres définis dans le fichier config.

send()

'send' envoie un e-mail en utilisant les paramètres définis. Ces paramètres sont:

  • [string|array] L'email du destinataire (et le nom), ou un array de To, Cc, Bcc noms
  • [string|array] L'email de l'expéditeur (et le nom)
  • [string] L'objet du message
  • [string] Le message en lui-même
  • [boolean] Envoyer l'email en HTML (Valeur par défault = false)
  • retourne [integer] le nombre d'emails envoyés
helpers/email.txt · Dernière modification: 15/03/2011 21:12 par alban
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0