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

Symfony PHP Discussion :

transportr mail avec swift mailer


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102
    Par défaut transportr mail avec swift mailer
    Bonjour, j'utilise Swift mailer dans symfony mais quand je suis en ligne le mail s'envoie correctement, mais en local il faut que je change différente chose.

    Quand je suis en ligne j'instancie un simple transport comme ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $transport = Swift_MailTransport::newInstance();
    mais en local après de multiple manipulation qui n'ont porté guère leur fruit j'ai juste remplacé la ligne ci-dessus par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    /*$transport = Swift_SmtpTransport::newInstance('mail.mondomaine.fr', 587);
    $transport->setUsername('monusername');
    $transport->setPassword('monpassword');*/
    et la comme par magie le mail s'envoie

    alors pourquoi devoir réinstancie mon transort entierement avec mon username,password, port, mail.mondomaine.fr alors que c'est donné sont configuré dans la configuration de symfony comme je vous montre ci-dessous:
    mon parameter.yml
    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
    parameters:
        database_driver: pdo_mysql
        database_host: 127.0.0.1
        database_port: null
        database_name: symfony
        database_user: root
        database_password: null
        mailer_transport:  mail
        mailer_auth_mode:  login
        mailer_host:       mail.mondomaine.fr
        mailer_port:       587
        mailer_user:       monusername   
        mailer_password:   monpassword
        locale:            fr
        secret: ea6411a97b3074574366b31aecd6ccd6e2d2a8b1
        database_path: null
    mon config.yml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    imports:
        - { resource: config.yml }
        - { resource: parameter.yml }
    Une idée les amis sur ce fameux mail

    Merci

  2. #2
    Membre habitué
    Ingénieur d'études et de développement
    Inscrit en
    Juin 2009
    Messages
    112
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur d'études et de développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2009
    Messages : 112
    Points : 154
    Points
    154
    Par défaut
    Bonjour,

    Pour envoyer des mail tu n'as qu'à utiliser le service 'mailer'.

    Soit tu fais une manipulation simpliste et peu réutilisable : tu appelles le service dans ton contrôleur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mailer = $this->container->get('mailer');
    puis tu crééer ton message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $message = \Swift_Message::newInstance()
                ->setSubject('lalal')
                ->setFrom('lala@lala.com', 'lalal@lalal.com')
                ->setTo($mail_to)
                ->setContentType(('text/html'))
                ->setBody('ton beau html');
    les variables peuvent être récupérer par le container

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mail_to = $this->container->getParameter('mailer_to');
    puis tu envoies ton mail

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mailer->send($message);

    Soit tu peux utiliser une 'belle' méthode. Créer un service listener qui va écouter des events que tu lanceras dans tes contrôleurs. Ce listener aura le mailer injecté en dépendance et factorisera tous tes envois de mails.

    Ainsi tu appelles toujours de la même façon ton mailer et en fonction de l'environnement, les paramètres d'envoi seront différents.

Discussions similaires

  1. Envoi de mails avec PHP Mailer
    Par s4mk1ng dans le forum Langage
    Réponses: 0
    Dernier message: 25/07/2013, 18h10
  2. [2.x] Envoi de mail avec Swift
    Par Elwood J. Blues dans le forum Symfony
    Réponses: 4
    Dernier message: 09/09/2011, 18h06
  3. Envoi de mail avec PHP Mailer
    Par bebedemon dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 12/07/2011, 15h56
  4. [1.x] Envoi d'un email avec Swift Mailer
    Par colimasson dans le forum Symfony
    Réponses: 4
    Dernier message: 09/12/2010, 18h01

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