Symfony - Envoie d'e-mail

Symfony - Envoie d'e-mail - PHP - Programmation

Marsh Posté le 26-12-2010 à 23:30:56    

Bonjour,
 
Je rencontre quelques problèmes pour envoyer des mail avec symfony, ou plus exactement pour ne pas les envoyer !
 
Ce que je fais dans mon action :
 

Code :
  1. // Create message object
  2. $message = $this->getMailer()->compose(
  3.  array($game->getEmailNoreply() => $game->getName()),
  4.  $member->getEmail(),
  5.  $game->getName().' : Confirmation inscription',
  6.  $this->getPartial('mail/registerConfirmation', $mailContext)
  7. );
  8.  
  9. // Send
  10. $this->getMailer()->send($message);


 
Pour faire simple, j'essaie simplement d'envoyer un bête email de confirmation d'inscription.
 
Mon factories.yml pour la dev est le suivant :
 

dev:
  mailer:
    param:
      delivery_strategy: none


 
 
Je suis bien sur frontend_dev.php.
 
Lorsque je valide mon formulaire et que mon email est censé partir, je reçois systématiquement l'erreur suivante :
500 | Internal Server Error | Swift_TransportException
 
L'erreur provient du code suivant :
 
 

# at ()
in SF_ROOT_DIR\lib\vendor\symfony\lib\vendor\swiftmailer\classes\Swift\Transport\StreamBuffer.php line 235 ...
 
232.     }
233.     if (!$this->_stream = fsockopen($host, $this->_params['port'], $errno, $errstr, $timeout))
234.     {
235.       throw new Swift_TransportException(
236.         'Connection could not be established with host ' . $this->_params['host'] .
237.         ' [' . $errstr . ' #' . $errno . ']'
238.         );


 
 
Ceci-dit, je ne comprends pas pourquoi il essait de contacter un SMTP alors que je lui demande de ne pas envoyer les mails lorsque je suis en dev.
J'ai l'impression qu'il ignore ce que je configure dans mon factorie.yml.
Quelqu'un a une idée de la source de mon problème ?
 
Mon projet n'étant actuellement pas en prod, je ne l'ai pas testé dans ce contexte.
 
Merci :jap:


Message édité par dwogsi le 27-12-2010 à 09:37:32

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 26-12-2010 à 23:30:56   

Reply

Marsh Posté le 27-12-2010 à 16:09:03    

Problème classique, que tout le monde rencontre.
Le delivery strategy sert à établir la stratégie pour délivrer les mails. Donc il contacte le "transporteur" (un serveur SMTP dans ton cas), et selon la stratégie définie, il va faire les choses différemment. Mais il contacte en premier lieu le transporteur tout de même.

 

Si tu ne veux pas qu'il contacte le transporteur, tu dois aussi explicitement le demander en mettant dans ton factories.yml :

Code :
  1. dev:
  2.  mailer:
  3.    param:
  4.      delivery_strategy: none
  5.      transport:
  6.        class: Swift_NullTransport


Message édité par Tirkyth le 27-12-2010 à 16:11:33

---------------
Mon Feedback !
Reply

Marsh Posté le 28-12-2010 à 19:52:05    

Effectivement ça règle le problème. Merci.
J'avais fait pas mal de recherches avant de venir poser ma question ici et, même si le problème est classique, je n'avais pas trouvé la solution.
 
Par contre, maintenant je test une configuration différente, pour faire partir mes mails :
 


dev:
    class: sfMailer
    param:
      logging: %SF_LOGGING_ENABLED%
      charset: %SF_CHARSET%
      delivery_strategy: realtime
      transport:
        class: Swift_SmtpTransport
        param:
          host:       smtp.gmail.com
          port:       465
          encryption: tls
          username:   contact@xxxxxxxx.xx
          password:   *************


 
J'essaie donc simplement d'utiliser la SMTP GMail et je reçoit encore la fameuse erreur :
 
500 | Internal Server Error | Swift_TransportException|
 
Donc pas de connexion au serveur SMTP. Ces paramètres sont valides et fonctionnent bien sur d'autres projets.
 
Pour le coup, ça vient peut être de la config de ma machine...
 
Enfin si vous pouvez juste me dire si j'ai fait un erreur dans la config de symfony ? Merci.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 30-12-2010 à 09:49:28    

Peux-tu essayer de remplacer le numéro de port par 587 ?


---------------
Mon Feedback !
Reply

Marsh Posté le 30-12-2010 à 19:04:00    

J'avais en fait un petit problème dans ma configuration. Celle qui fonctionne bien est la suivante :

port:       465
encryption: ssl


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 30-12-2010 à 23:04:45    

Heureusement qu'on a inventé Symfony pour envoyer des e-mails.
Je me demande comment on faisait avant... ?  :lol:   :lol:   :lol:

Message cité 1 fois
Message édité par CyberDenix le 30-12-2010 à 23:05:00

---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 31-12-2010 à 09:48:01    

CyberDenix a écrit :

Heureusement qu'on a inventé Symfony pour envoyer des e-mails.
Je me demande comment on faisait avant... ?  :lol:   :lol:   :lol:


Gné ?


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed