Buenos días,
Al intentar enviar correo desde el servidor Guarani 3W v2.9.5 da el sigueinte error:
./guarani enviar_emails
Inicio del proceso de encolado de emails enviados desde Guarani Gestion...
Encolando los emails de la Unidad de Gestion: '15348'...
PHP Notice: Undefined variable: pdo in /usr/local/proyectos/3w/2.9.5/src/siu/util/consola/comandos/enviar_emails.php on line 123
PHP Fatal error: Call to a member function rollBack() on a non-object in /usr/local/proyectos/3w/2.9.5/src/siu/util/consola/comandos/enviar_emails.php on line 123
En el archivo src/siu/util/consola/comandos/enviar_emails.php, dentro de la función execute saca estas lineas del try:
$bloque_acceso = $acceso['database'];
$pdo = new \PDO(********);
que quede algo como sigue:
................................
//Por cada bloque de acceso (conexión a la DB)
foreach($accesos as $key => $acceso){
$this->bootstrap_kernel($key);
$output->writeln("<comment>Encolando los emails de la Unidad de Gestión: '{$acceso['ua']}'...</comment>");
$bloque_acceso = $acceso['database'];
$pdo = new \PDO(********);
try{
................................
Por favor, avísanos si con eso funciona así lo incorporamos en la próxima versión!!!
./guarani enviar_emails
Inicio del proceso de encolado de emails enviados desde Guaran▒ Gesti▒n…
Encolando los emails de la Unidad de Gesti▒n: ‘15348’…
[PDOException]
SQLSTATE=HY000, SQLDriverConnect: -23197 [Informix][Informix ODBC Driver][Informix]Database locale information mismatch.
Ahi lo elimine a ese parametro…creeria que funciono:
Salieron un millon de lineas como estas…
Encolando los emails de la Unidad de Gesti▒n: ‘14347’…
Se encolaron 0 emails para la Unidad de Gesti▒n: ‘14347’…
Inicio del proceso de env▒o de emails encolados para la Unidad de Gesti▒n: ‘14347’…
[2019-03-27T10:41:24-03:00] [JOB] Starting worker host::g3w2-nodo2 pid::9047 on queue::email
[2019-03-27T10:41:24-03:00] [JOB] attempting to acquire lock for job::2498 on host::g3w2-nodo2 pid::9047
PHP Notice: Undefined index: reply_to in /usr/local/proyectos/3w/2.9.5/src/siu/lib/kernel/util/mail.php on line 49
[2019-03-27T10:41:28-03:00] [JOB] completed job::2498
[2019-03-27T10:41:30-03:00] [JOB] attempting to acquire lock for job::2500 on host::g3w2-nodo2 pid::9047
PHP Notice: Undefined index: reply_to in /usr/local/proyectos/3w/2.9.5/src/siu/lib/kernel/util/mail.php on line 49
[2019-03-27T10:41:32-03:00] [JOB] completed job::2500
Hola, si tenemos definido el reply_to dentro del config.php
Que otra cosa podemos revisar?
El failure es por el reply_to tambien?
PHP Notice: Undefined index: reply_to in /usr/local/proyectos/3w/2.9.5/src/siu/lib/kernel/util/mail.php on line 49
[2019-03-28T10:06:30-03:00] [JOB] failure in job::2502
Ahi vimos en la tabla que los failure son aparentemente porque está mal el Recipient osea la dirección de correo-
Ahora la tabla no se limpia? Porque va a seguir intentando a enviar a las direcciones que esten mal?
Al momento que se envía el email, el mismo se encola en la tabla jobs de la base de datos. Cuando esto ocurre, se encola un objeto de la clase MailJob (src/siu/lib/kernel/util/MailJob.php), y se toma la configuración de SMTP de ese momento.
Si luego modificas la configuración de SMTP, igualmente el email encolado se envía con la configuración previa (porque ya el objeto se serializa con los parámetros de SMTP).
Si quieren modificar alguna propiedad del objeto encolado, lo pueden hacer de forma provisoria en la función perform del archivo src/siu/lib/kernel/util/MailJob.php, ej:
public function perform() {
$this->set_reply('ejemplo@gmail.com');
$this->enviar();
}
Tener en cuenta que $this es un objeto de la clase src/siu/lib/kernel/util/mail.php.
¿Porque va a seguir intentando a enviar a las direcciones que estén mal?
Si mal no recuerdo, lo que hace la librería DJJob es borrar las tareas que se ejecutan bien. Las que fallan las reintenta ejecutar un par de veces hasta que las bloquea y no las vuelve a ejecutar mas (no las borra, debe ser para que queden en la tabla y se revisen).