Dani Garcia escribió:

Ante todo pido disculpas si el post ocupa mucho.

Os comento, estoy haciendo pruebas para migrar el sistema de correo a
postfix con los usuarios/passwords guardados en mysql. He seguido varios
manuales:
- http://bulma.net/body.phtml?nIdNoticia=1621
- http://userbsd.net/index.php?page=Doc&id=20
- documentacion en la web de postfix
- Cosillas que aparecen buscando en google.

En principio he probado con debian sarge, aunque tambien he actualizado
otra maquina a sid para testear (son cacharros de prueba instalados desde
cero).
He creado la BD y las tablas, introduzco datos en la tabla users y en la
tabla transport para indicar que el dominio "pruebas.com" tiene los
usuarios virtuales. He añadido al /etc/hosts que pruebas.com se
corresponde con la ip lan del servidor de correo (192.168.0.100). Modifico
el main.cf para que mynetworks tambien contemple la lan y asi me permita
enviar desde mi pc, ademas le cambio mydestination a pruebas.com. Envio un
correo a un usuario del sistema y llega sin problemas.

Paso a modificar postfix para que use mysql. Modifico el main.cf y lo dejo
asi:
###########################################################
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
program_directory = /usr/lib/postfix
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
setgid_group = postdrop
biff = no
append_dot_mydomain = no
myhostname = pruebas.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
virtual_mailbox_base=/var/vmail
virtual_mailbox_maps=mysql:/etc/postfix/mysql_virt.cf
virtual_uid_maps=mysql:/etc/postfix/uids.cf
virtual_gid_maps=mysql:/etc/postfix/gids.cf
transport_maps=mysql:/etc/postfix/transport.cf
virtual_maps =mysql:/etc/postfix/virtual.cf
mydestination = pruebas.com
mailbox_command =
mailbox_size_limit = 0
recipient_delimiter = +
mynetworks = 127.0.0.1/8 192.168.0.0/24
###########################################################

Creo los ficheros .cf segun el manual de bulma, al igual que hice con la
bd y las tablas.
desde mysql doy permiso al usuario para que acceda a la bd, desde
localhost y desde toda la lan (el mismo usuario que hay en los cf), hago
lo del enlace simbolico para que postfix pueda llegar hasta mysql y
reinicio postfix.

Al enviar correo aparece en el cliente de correo (Mozilla Thunderbird):
""Ocurrio un error mientras se enviaba el correo. El servidor de correo
respondio: <[EMAIL PROTECTED]>: Recipient address rejected: User unknown
in local recipient table. Por favor, verifique que su direccion de correo
electronico es correcta en las preferencias de Mail y vuelva a
intentarlo."".

En /var/log/mail.log del servidor aparece:
Nov 11 13:36:21 debian postfix/smtpd[2763]: connect from
unknown[192.168.0.100]
Nov 11 13:36:22 debian postfix/smtpd[2763]: NOQUEUE: reject: RCPT from
unknown[192.168.0.100]: 550 <[EMAIL PROTECTED]>: Recipient address
rejected: User unknown in local recipient table;
from=<[EMAIL PROTECTED]> to=<[EMAIL PROTECTED]> proto=ESMTP
helo=<[192.168.0.100]>

En /var/log/mysql/mysql.log del servidor aparece:
041111 13:36:21     102 Connect     [EMAIL PROTECTED] on mail
                   102 Query       select transport from transport where
domain = '*'
                   102 Query       select transport from transport where
domain = '*'
                   103 Connect     [EMAIL PROTECTED] on mail
                   103 Query       select goto from virtual where address
= 'pruebas.com'
                   104 Connect     [EMAIL PROTECTED] on mail
                   104 Query       select maildir from users where
address = 'pruebas.com'
                   102 Query       select transport from transport where
domain = '[EMAIL PROTECTED]'
                   102 Query       select transport from transport where
domain = 'pruebas.com'
041111 13:36:22     105 Connect     [EMAIL PROTECTED] on mail
                   105 Query       select goto from virtual where address
= '[EMAIL PROTECTED]'
                   105 Query       select goto from virtual where address
= 'usuario'
                   105 Query       select goto from virtual where address
= '@pruebas.com'


Parece ser que la consulta sql no se hace bien. Cuando hace ""select
maildir from users where address = 'pruebas.com'"" me imagino que debe
fallar porque addess no es pruebas.com, realmente es [EMAIL PROTECTED]
La verdad es que de esto no estoy muy seguro,

la cosa esta clara, es ahi donde falla, lo que me sorprende es que te tire de mysql, tienes puesto en mydestination el dominio pruebas.com por tanto el correo para usuarios de ese dominio sera procesado como local (usuarios reales del sistema), en el manual ese de bulma resuelven el tema de procesado virtual con un metodo que no me gusta, pone en mydestination $transport_maps por lo tanto usa la tabla transport que sirve para almacenar los dominios que formaran parte de mydestination pero dando la posibilidad de elegir el metodo deliver, virtual por defecto, ya que has seguido ese manual prueba a poner el dominio prueba.com en la tabla transport y en mydestition pon $transport_maps en lugar de pruebas.com.

Otra cosa he creado un usuario que sera con el que se guardaran los
correos y le he dado permisos al directorio. Pero esto seria un segundo
paso. Creo que el tema esta en que los correos no llegan porque postfix no
lozaliza al usuario en la BD, sin embargo, he seguido al pie de la letra
las instrucciones del manual de bulma, parace que a la gente le funciona
pero a mi no me va, y la verdad es que le he dado ya bastantes vueltas

Bueno pues no me enrollo mas, si podeis ayudarme os lo agradezco.

Un saludo



Responder a