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
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!!