2017-03-16 2 views
1

Dans mon environnement de développement je veux utiliser mailhog pour attraper les emails. J'ai installé et configuré mon php.ini pour installer la propriété sendmail. Si dans la ligne de commande je lance ceSymfony 3 et Mailhog: les mails ne sont pas mis en cache par mailhog

php -r "mail(......);" 

le courrier est capturé par mailhog. Le problème est avec Symfony et Swiftmailer. Pour faire un test j'ai créé un contrôleur très simple avec ceci:

/** 
    * @return Response 
    */ 
    public function homeAction() : Response 
    { 
     mail('[email protected]', 'tasest', 'aaaa'); 
     $message = \Swift_Message::newInstance() 
      ->setSubject('Hello Email') 
      ->setFrom('[email protected]') 
      ->setTo('[email protected]') 
      ->setBody(
       'aaaaa', 
       'text/html' 
      ); 
     $this->get('mailer')->send($message); 
     return $this->render('::base.html.twig'); 
    } 

Maintenant, l'e-mail envoyé par la fonction mail est capturé par mailhog. Mais pas le mail envoyé par SwiftMailer.

Dans mon config_dev j'ai ceci:

# Swiftmailer Configuration 
swiftmailer: 
    transport: "sendmail" 

que je pense devrait être suffisant.

Ai-je raté quelque chose ici?

PS: Si j'utilise une adresse réelle (au lieu de [email protected]) l'e-mail est envoyé et reçu

Mise à jour: J'ai essayé aussi de configurer mailhog pour smtp, parameters.yml:

mailer_transport: smtp 
mailer_host: 127.0.0.1 
mailer_port: 1025 
mailer_user: null 
mailer_password: null 

config.yml:

swiftmailer: 
    transport: "%mailer_transport%" 
    host:  "%mailer_host%" 
    port:  "%mailer_port%" 
    username: "%mailer_user%" 
    password: "%mailer_password%" 
    spool:  { type: memory } 

Mais le résultat était le même résultat.

+0

problème résolu, un problème avec le cache – petekaner

Répondre

1

La configuration de Swiftmailer dans Symfony aura généralement une configuration plus complète, en particulier dans config_dev.yml, pour être explicite de l'endroit où vous l'enverrez.

swiftmailer: 
    transport: "%mailer_transport%" 
    host:  "%mailer_host%" 
    port:  "%mailer_port%" 
    username: "%mailer_user%" 
    password: "%mailer_password%" 

Ici, si Mailhog était sur le port 1025 (typique), parameters.yml puis dans un environnement de développement serait fixé comme celui-ci, pour remplir les paramètres dans le fichier .yml:

mailer_transport: smtp 
mailer_host: 127.0.0.1 
mailer_port: 1025 
mailer_user: null 
mailer_password: null 
+0

essayé aussi bien, mais le même résultat – petekaner