Envoyer des emails depuis Php via un compte Gmail avec SwiftMailer

Un bout de code très simple pour envoyer des emails en texte ou HTML depuis votre code Php via un compte GMail avec la librairie Swift. Pour cela nous allons utiliser le protocole SMTP mis à disposition par la librairie Swift de façon très très facile.

Librairie SwiftMailer

Cette librairie est gratuite et open-source, un petit tour sur http://swiftmailer.org pour la télécharger, ensuite chargez le contenu du dossier sur votre server (local ou pas d’ailleurs)

Code source

Ensuite, créez un nouveau fichier Php, et voila le code pour envoyer un simple mail HTML depuis un compte Gmail classique :

require_once MODULES_PATH.'swift/lib/swift_required.php';

//Create the Transport the call setUsername() and setPassword()
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com',465,'ssl')->setUsername('ebuildy@gmail.com')->setPassword('PASSWORD');

//Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);

$message = Swift_Message::newInstance('Votre lien de secours pour Urbadz')
->setContentType("text/html")
->setFrom(array('ebuildy@gmail.com' => 'Urbadz'))
->setTo(array('toto@hotmail.com' => 'Toto'))
->setBody('<b>Bonjour</b>, vous recevez cet email parce que ..... <br /><br /> CODE HTML : <a href="http://ebuildy.com">http://ebuildy.com/</a><br /><br /><a href="http://ebuildy.com"><img alt="Ebuildy" style="border:0 none" src="http://ebuildy.com/img/logo.png" /></a>')
;

//Send the message
$result = $mailer->send($message);

var_dump($result);die();

Et hop, après un peu de temps (quelques secondes pour moi), votre mail est envoyé ! Dans un vrai cas d’utilisation, le mieux est de mettre les emails à envoyer dans une sorte de file d’attente (avec un simple base mySQL par exemple) et programmer un envoi de mails par tâche CRON avec une gestion des adresses et domaines blacklistés ….

2 thoughts on “Envoyer des emails depuis Php via un compte Gmail avec SwiftMailer

  1. J’ai rencontré ce probleme. j’ai suivi la procedure ca n’a rien donné.
    agacé, j’ai ete jusqu’a renommer les repertoires pour lui faire perdre les pedales.
    rien du tout
    prestashop s’obstine a me montrer des pages fautives

    Que faire ?

  2. Dans le menu preferences / performances / smarty –> “force compile” sur “Yes” et “Cache” sur “no”. Ca a marche pour moi (prestahop 1.4.0). Ne pas oublier de restaurer les parametres initiaux pour la mise en ligne, sinon le site sera bcp plus lent…

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>