IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

Envoi d'e-mail via Swiftmailer


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 161
    Points : 50
    Points
    50
    Par défaut Envoi d'e-mail via Swiftmailer
    Bonjour à tous,

    Je suis en train de réaliser un envoi d'e-mail avec la librairie Swiftmailer. L'envoi d'e-mail marche bien mais le problème est que le code PHP, et SQL dans mon template ne sont pas interprétés. J'aimerais savoir s'il y a une solution pour remédier à ça. J'utilise la fonction PHP : file_get_contents() pour récupérer les contenus html et texte.

    Merci par avance !

    Voici le code ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    // Envoi de la newsletter
    $sql = "SELECT * FROM newsletter WHERE statu=1";
    $req = $db->prepare($sql);
    $req->execute() or die(print_r($req->errorInfo()));
    $row = $req->fetch();
     
    $to = $row['client_email'];
     
    // contenu html
    $html = file_get_contents(dirname(__FILE__)."/newsletter.php");
    // contenu texte
    $text = file_get_contents(dirname(__FILE__)."/newsletter.txt");
     
    // create transport
    $transport = (new Swift_SmtpTransport('smtp.domaine.com', 25));
     
    // Create the Mailer using your created Transport
    $mailer = new Swift_Mailer($transport);
     
    // create message
    $message = (new Swift_Message())
       ->setSubject($nom_news)
       ->setFrom(['webmaster@domaine.com' => 'Webmaster'])
       ->setTo([$to => 'Client mail'])
       ->setBody($html, 'text/html') 
       ->addPart($text, 'text/plain');
     
    // send email
    $result = $mailer->send($message);
     
    if ($result) {
        echo "Newsletter envoyée à : ".$to;
    }

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    Vous pouvez par exemple utiliser les fonctions de temporisation de sortie (http://php.net/ob_start) comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // contenu html
    ob_start();
        require dirname(__FILE__)."/newsletter.php";
    $html = ob_get_clean();

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 161
    Points : 50
    Points
    50
    Par défaut
    Bonjour @mathieu,

    Merci d'avoir pris le temps de me répondre.
    Je vais faire le test et je reviendrai vers toi en cas de questions.

    Cdlt,

Discussions similaires

  1. envoi d'e-mail via word
    Par Serry99 dans le forum VBA Word
    Réponses: 1
    Dernier message: 11/10/2008, 10h58
  2. Envoi d'un mail via n'importe quel logiciel de mailing
    Par INFERNOTRONIC dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/07/2008, 11h59
  3. Envoi d'un mail via outlook avec l'option de vote
    Par Djohn dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/03/2008, 11h23
  4. Envoie d'e-mail via apache
    Par Mister_FX dans le forum Apache
    Réponses: 2
    Dernier message: 25/01/2007, 17h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo