Swiftmailer spool y Symfony 2.3.3

418 views
Skip to first unread message

Fátima Dorta

unread,
Nov 10, 2013, 11:29:36 AM11/10/13
to symfo...@googlegroups.com
Hola a tod@s!

Estoy utilizado Swiftmailer para enviar correos electrónicos desde mi aplicación.
Inicialmente, lo tenía configurado así en el config.yml:

swiftmailer:
    transport:  smtp
    encryption: ssl
    auth_mode:  login
    host:       smtp.gmail.com
    username:   mimail
    password:   mipassword

Pero claro, tardaba mucho y quise utilizar el spool. Según la documentación (http://gitnacho.github.io/symfony-docs-es/cookbook/email/spool.html) simplemente tenía que añadir:

swiftmailer:
    transport:  smtp
    encryption: ssl
    auth_mode:  login
    host:       smtp.gmail.com
    username:   mimail
    password:   mipassword
    spool:
        type: file
        path: bundles/mibundle/spool      
#Directorio donde se guarda la cola de envío (C:\xampp\htdocs\MiBundle\web\bundles\mibundle\spool)

Luego, tendría que crear un servicio para que ejecutara el comando:

$ php app/console swiftmailer:spool:send 
Cuando utilizo como transport smtp, me da como resultado:

   C:\xampp\php>php.exe ../htdocs/miproyecto/app/console swiftmailer:spool:send      
   Processing default mailer... 0 emails sent                                                      

Googleando un poco vi que a veces se utilizaba como transport "mail" o "sendmail", por lo que si ejecuto el comando anterior, tengo como resultado:

C:\xampp\php>php.exe ../htdocs/miproyecto/app/console swiftmailer:spool:send       
Processing default mailer...                                                                                   
                                                                                                                           
  [Symfony\Component\Debug\Exception\ContextErrorException]                             
  Catchable Fatal Error: Argument 2 passed to Swift_Transport_SendmailTranspo      
  rt::__construct() must implement interface Swift_Events_EventDispatcher, in           
  stance of Swift_Transport_StreamBuffer given, called in C:\xampp\htdocs\miproyec 
  to\app\cache\dev\appDevDebugProjectContainer.php on line 2237 and defined in      
   C:\xampp\htdocs\miproyecto\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Tran    
  sport\SendmailTransport.php line 42                                                                     
                                                                                                                           
swiftmailer:spool:send [--message-limit[="..."]] [--time-limit[="..."]] [--recov                 
er-timeout[="..."]] [--mailer[="..."]]                                                                           

Donde la función donde da error es:

    /**
     * Create a new SendmailTransport with $buf for I/O.
     *
     * @param Swift_Transport_IoBuffer     $buf
     * @param Swift_Events_EventDispatcher $dispatcher
     */
    public function __construct(Swift_Transport_IoBuffer $buf, Swift_Events_EventDispatcher $dispatcher)
    {
        parent::__construct($buf, $dispatcher);
    }

Los correos se ponen en cola, pero no me aparecen como enviados:


El apartado de mail en el php.ini ahora mismo está así:
 
[mail function]
; XAMPP: Comment out this if you want to work with an SMTP Server like 
Mercury
 SMTP = localhost
 smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = postmaster@localhost
; XAMPP IMPORTANT NOTE (1): If XAMPP is installed in a base directory with 
spaces (e.g. c:\program filesC:\xampp) fakemail and mailtodisk do not work 
correctly.
; XAMPP IMPORTANT NOTE (2): In this case please copy the sendmail or 
mailtodisk folder in your root folder (e.g. C:\sendmail) and use this for 
sendmail_path.  
 
; XAMPP: Comment out this if you want to work with fakemail for forwarding 
to your mailbox (sendmail.exe in the sendmail folder)
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
; XAMPP: Comment out this if you want to work with mailToDisk, It writes all 
mails in the C:\xampp\mailoutput folder
sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
; Force the addition of the specified parameters to be passed as extra 
parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =
; Add X-PHP-Originating-Script: that will include uid of the script followed 
by the filename
mail.add_x_header = Off
; Log all mail() calls including the full path of the script, line #, to 
address and headers
mail.log = "C:\xampp\php\logs\php_mail.log"

¿Alguien tiene idea de porqué no se me envían los correos?

Gracias de antemano por la ayuda!!



 

Kenny Rodriguez

unread,
Nov 12, 2013, 8:12:22 AM11/12/13
to symfo...@googlegroups.com
Puede ser que tu instalación de xammp esté mal configurada... (en realidad nunca he intentado enviar mails desde windows, sólo linux)
Quizás esto te sirva un poco, http://symfony.com/doc/current/reference/configuration/swiftmailer.html

Otra cosa, veo que configuras SSL, ¿en tu servidor tienes algún certificado instalado para utilizar esa configuración?

No se que otra cosa puede ser.

Saludos,

Fátima Dorta

unread,
Nov 16, 2013, 5:16:13 AM11/16/13
to symfo...@googlegroups.com
Gracias Kenny! Me olía algo de que iba a ser por windows y xampp... ya hace unas semanas perdí un montón de tiempo porque, de repente, dejó de enviar mails!

Definitivamente, me voy a instalar linux y así evitarme quebraderos de cabeza.

Muchiiiiisimas gracias por tu respuesta!!

Reply all
Reply to author
Forward
0 new messages