[opensuse-es] Courier y postfix
Saludos lista, Tengo un server mail con courier, postfix y mysql, pero no he podido resolver este problema "proxymap open failed for table invaild request", el usuario que tengo configurado tiene todos los permisos sobre la base de datos y aun asi sigue el problema. este es el archivo para la Bd user=postfix password=pass123 hosts=localhost dbname=postfix query=SELECT maildir FROM mailbox WHERE username='%s' AND active='1' -- Linux user number 457594 -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El 18/12/08, luis miguel escribió:
Tengo un server mail con courier, postfix y mysql, pero no he podido resolver este problema "proxymap open failed for table invaild request",
¿Es el mensaje de error exacto? :-? Sólo una idea... Por el error que te saca postfix pareciera que la consulta a la bdd tenga algún parámetro incorrecto.
query=SELECT maildir FROM mailbox WHERE username='%s' AND active='1'
Aquí, mira a ver si ejecutando esa consulta directamente en mysql (con el usuario y la contraseña que usas como parámetros en postfix) no te saca ningún error y se ejecuta correctamente :-? Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El jue, 18-12-2008 a las 10:44 -0600, luis miguel escribió:
Saludos lista, Tengo un server mail con courier, postfix y mysql, pero no he podido resolver este problema "proxymap open failed for table invaild request", el usuario que tengo configurado tiene todos los permisos sobre la base de datos y aun asi sigue el problema.
este es el archivo para la Bd
user=postfix password=pass123 hosts=localhost dbname=postfix query=SELECT maildir FROM mailbox WHERE username='%s' AND active='1'
El campo active es un char o integer? Si es integer prueba a quitar las comillas alrededor del 1. Prueba tambien a poner un punto y coma ";" al final. Tampoco sobran a veces unos parentesis query=SELECT maildir FROM mailbox WHERE ((username='%s') AND (active=1)); -- Saludos Lluis
Saludos y gracias por sus consejos, el query lo ejecuto directamente y si se ejecuta aunque no me arroja un resultado ejecutandolo con el where = username ='%s' y no se lo puedo quitar por que de otra formaq no me regresaria el usuario seleccionado aunque de todas formas no me regresa nada. -- Linux user number 457594 -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El 18/12/08, luis miguel escribió:
Saludos y gracias por sus consejos, el query lo ejecuto directamente y si se ejecuta aunque no me arroja un resultado ejecutandolo con el where = username ='%s' y no se lo puedo quitar por que de otra formaq no me regresaria el usuario seleccionado aunque de todas formas no me regresa nada.
Si no ejecutas la consulta con los valores exactos supongo que no funcionará porque en la tabla sql no existe el valor '%s' sino la dirección del usuario en formato "usuario@dominio.com" :-? Prueba lo que te comenta Lluis, juega con los valores que defines en la consulta o prueba a ejecutar una consulta lo más sencilla posible: *** query=SELECT maildir FROM mailbox WHERE username='%s' *** Recarga la configuración de Postfix "rcpostfix reload" para activar los cambios e intenta de nuevo de nuevo. Por cierto... ¿este error te aparece desde hace poco, no te ha funcionando nunca, has cambiado alguna cosa, añadido algún usuario a la bdd, actualizado mysql o postfix...? Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
Saludos y gracias, este es el error completo que aparece en los logs: Dec 17 12:47:46 server postfix/smtpd[14756]: fatal: proxymap open failed for table "mysql/etc/postfix/mysql_virtual_mailbox_maps.cf": invalid request -- Linux user number 457594 -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
luis> este es el error completo que aparece en los logs: luis> Dec 17 12:47:46 server postfix/smtpd[14756]: fatal: proxymap open luis> failed for table "mysql/etc/postfix/mysql_virtual_mailbox_maps.cf": luis> invalid request Pues dice que la tabla no existe
query=SELECT maildir FROM mailbox WHERE username='%s' AND active='1'
Tiene que buscar la tabla "maildir" y busca "mysql_virtual_mailbox_maps.cf" que por otro lado no es nombre para una tabla, sino para un fichero de configuración.
Saludos, La tabla si existe, ejecuto el query en phpmyadmin y me arroja resultados ejecuntandolo con where active = 1, y si efecitvamente el otro es el fichero de configuracion mediante el cual pongo el user, pass y bd para que se conecte postfix con mysql. /etc/postfix/mysql_virtual_mailbox_maps.cf user=postfix password=pass123 hosts=localhost dbname=postfix query=SELECT maildir FROM mailbox WHERE username='%s' AND active='1' -- Linux user number 457594 -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El 18/12/08, luis miguel escribió:
La tabla si existe, ejecuto el query en phpmyadmin y me arroja resultados ejecuntandolo con where active = 1, y si efecitvamente el otro es el fichero de configuracion mediante el cual pongo el user, pass y bd para que se conecte postfix con mysql.
Oye... ¿y si le dices al postfix que se ponga en modo verboso? Es decir, que aumente la cantidad de detalles que registra para ver si te da alguna pista más :-? Creo que la forma más sencilla de hacerlo sería ajustando las variables "debug_peer_list" y "debug_peer_level" en el archivo de configuración /etc/postfix/main.cf Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
luis> La tabla si existe, ejecuto el query en phpmyadmin y me arroja luis> resultados ejecuntandolo con where active = 1, y si efecitvamente el luis> otro es el fichero de configuracion mediante el cual pongo el user, luis> pass y bd para que se conecte postfix con mysql. Vale, la tabla "maildir" existe; entonces la pregunta del millon es porque dice failed for table "mysql/etc/postfix/mysql_virtual_mailbox_maps.cf", es decir, porque busca una tabla llamada "mysql_virtual_mailbox_maps.cf", que, evidentemente no existe. :-)
No se!!!!, es lo que intento resolver, ya vi los permisos para el usuario, cheque la sintaxis del query, la configuracion de courier, y no encuentro la solucion. -- Linux user number 457594 -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
luis> No se!!!!, es lo que intento resolver, ya vi los permisos para el luis> usuario, cheque la sintaxis del query, la configuracion de courier, y luis> no encuentro la solucion. en alguno de los ficheros de configuracion tendría que poner "maildir" en lugar de "mysql_virtual_mailbox_maps.cf". Quizá en ese último fichero.
Si, el fichero se llama: mysql_virtual_mailbox_maps.cf y dentro de el va el siguiente texto. user=postfix password=pass123 hosts=localhost dbname=postfix query=SELECT maildir FROM mailbox WHERE username='%s' AND active='1' -- Linux user number 457594 -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
luis> Si, el fichero se llama: mysql_virtual_mailbox_maps.cf y dentro de el luis> va el siguiente texto. luis> luis> user=postfix luis> password=pass123 luis> hosts=localhost luis> dbname=postfix luis> query=SELECT maildir FROM mailbox WHERE username='%s' AND active='1' Haber, sin desesperarse, igual así funciona: Comprueba que en main.cf (de Postfix) tengas una línea como esa: virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf (ojo con los dos puntos ":" entre mysql y /etc....) y modifica el fichero mysql_virtual_mailbox_maps.cf (guarda una copia del antiguo) añadiendo: table = mailbox select_field = maildir where_field = username additional_conditions = and active = '1' y quitando query=SELECT maildir FROM mailbox WHERE username='%s' AND active='1' Si no va, comenta en el archivo de configuración la última línea: #additional_conditions = and active = '1' Si tampoco va, entonces déjalo para mañana (o pasado)
participants (4)
-
Camaleón
-
J.M.Queralt
-
lluis
-
luis miguel