Sei sulla pagina 1di 14

Servidor de Correo

(Postfix+Courier+MySQL)

ndice
1.Introduccin.....................................................................................................2 2.Instalando Postfix..............................................................................................2 3.Aplicando Parche a Postfix, para que pueda soportar cuotas en los buzones...............3 4.Configurando Postfix..........................................................................................4 5.Configurando Postfix..........................................................................................6 5.1.Archivos ha crear.........................................................................................6 6.Instalando y Configurando MySQL........................................................................7 7.Configurando Courier........................................................................................10 8.Poniendo en marcha todo..................................................................................10 9.Tomar en cuenta..............................................................................................11 10.Aplicar seguridad a Postfix (todas las opciones son opcionales)............................12 11.Conclusiones.................................................................................................13

F. Skrdz

1. Introduccin
Postfix es un MTA (Message Transfer Agent) relativamente fcil de administrar, seguro (al menos ms que sendmail y otros) y que no sobrecarga mucho la mquina ya que solamente se cargan los mdulos necesarios en cada momento. Su funcin es comunicarse con los otros servidores (rigel.deusto.es, terra.es ...), para entregarse entre ellos el correo. Por ejemplo, cuando algn amigo nuestro nos quiere enviar un mail, se conecta al servidor de correo de terra (mailhost.terra.es) y mediante el protocolo SMTP, manda los comandos necesarios para que reciba su mensaje. Posteriormente, mailhost.terra.es se conecta con rigel.deusto.es y le entrega dicho mail, con lo que ste lo guarda en el buzn del usuario al que iba dirigido el mensaje. Si bajamos al aula de correo de la Universidad, mediante el protocolo pop3 nos comunicamos con rigel.deusto.es para que nos devuelva los mensajes que hay en nuestro buzn y as recibir el mensaje que nuestro amigo nos haba enviado. Otro protocolo para poder "ver" los mensajes que tenemos en nuestro servidor, es IMAP (Internet Message Access Protocol), el cual es mucho ms potente que el pop3 anteriormente citado. Permite entre otras muchas cosas, acceder a los mensajes del servidor como si fueran locales, creacin de carpetas en el buzn del servidor, buzones accesibles por varias personas... He elegido courier-imap para implementarlo y poder ver as, toda su potencia. Por ltimo, pero no por ello menos importante, ante cuestiones del estilo de "cmo se podra hacer para tener usuarios solo para el correo?"... se Introdujo tambin en la pareja postfix-courier, MySQL para tener una Base de Datos en la que se podran ir guardando los usuarios "virtuales" (ya que no van a existir en el sistema y por tanto en / etc/passwd) de correo electrnico. Como resumen a esta pequea introduccin, tenemos que Postfix se encargar de las labores de MTA, Courier de dar servicio IMAP y MySQL de almacenar los usuarios "virtuales".

2. Instalando Postfix
Postfix es muy sencillo de ponerlo a andar. Con la configuracin que viene por defecto (si no recuerdo mal), ya es capaz de enviar mensajes. Para instalarlo en Ubuntu, basta con: sudoaptgetinstallpostfix Tambin vamos a instalar el soporte que tiene postfix para mysql: sudoaptgetinstallpostfixmysql Para l@s que no usen Debian, este soporte hay que drselo recompilando postfix con las

opciones necesarias de la forma que muestro a continuacin: makefMakefile.initmakefiles\ 'CCARGS=DHAS_MYSQLI/usr/local/mysql/include'\ 'AUXLIBS=/usr/local/mysql/liblmysqlclientlzlm' make&&makeinstall Sustituyendo /usr/local por la ruta donde tengas dichos archivos en tu mquina. A continuacin copiamos el archivo virtual del src de postfix al directorio de ste: cpsrc/virtual/virtual/usr/libexec/postfix

3. Aplicando Parche a Postfix, para que pueda soportar cuotas en los buzones
Debemos de tener las fuentes de Postfix y algunas otras cositas para poder contruir un nuevo postfix con la funcionabilidad de soportar las cuotas en los buzones. Haremos un nuevo paquete DEB. Se deber de instalar: aptgetinstallbuildessentialdpkgdevfakeroot\ debhelperlibgdbmdevlibldap2devlibpcre3dev\ libssldevlibsasl2devpostgresqlserverdev8.2\ podebconfdpatchlibmysqlclient15devlsbrelease\ libcdbdevlibdb4.5dev cd/usr/src aptgetsourcepostfix Debers de estar seguro que uses la versin correcta de Postfix en el comando. Yo tengo instalado la 2.4.5.. Puedes encontrar tu versin de Postfix ejecutando: postconfd|grepmail_version El resultado ser algo as: root@server1:~#postconfd|grepmail_version mail_version=2.4.5 milter_macro_v=$mail_name$mail_version root@server1:~# Luego, se deber de descargar y hacer el siguiente proceso: wgethttp://vda.sourceforge.net/VDA/postfix2.4.5vdang.patch.gz gunzippostfix2.4.5vdang.patch.gz cdpostfix2.4.5 patchp1<../postfix2.4.5vdang.patch dpkgbuildpackage

Al final, aparecer una advertencia pero la puedes ignorar. (WARNING: Failed to sign .dsc and .changes file) Ahora debers ir al directorio de arriba que es donde esta el nuevo paquete DEB. cd.. luego el comando: lsl Mostrar tu paquete DEB nuevo.
root@server1:/usr/src#lsl total5424 drwxrxrx19rootsrc40962007111614:33postfix2.4.5 rwrr1rootsrc2226932007111614:30postfix_2.4.53ubuntu1.diff.gz rwrr1rootsrc6632007111614:30postfix_2.4.53ubuntu1.dsc rwrr1rootsrc17832007111614:33postfix_2.4.53ubuntu1_i386.changes rwrr1rootsrc11236682007111614:33postfix_2.4.53ubuntu1_i386.deb rwrr1rootsrc29346342007080319:53postfix_2.4.5.orig.tar.gz rwrr1rootsrc570552007080201:13postfix2.4.5vdang.patch rwrr1rootsrc380782007111614:33postfixcdb_2.4.53ubuntu1_i386.deb rwrr1rootsrc1336422007111614:33postfixdev_2.4.53ubuntu1_all.deb rwrr1rootsrc8262022007111614:33postfixdoc_2.4.53ubuntu1_all.deb rwrr1rootsrc443402007111614:33postfixldap_2.4.53ubuntu1_i386.deb rwrr1rootsrc40112007111614:33postfixmysql_2.4.53ubuntu1_i386.deb rwrr1rootsrc399562007111614:33postfixpcre_2.4.53ubuntu1_i386.deb rwrr1rootsrc40192007111614:33postfixpgsql_2.4.53ubuntu1_i386.deb root@server1:/usr/src#

Luego tomas el paquete postfix y postfix-mysql para instalarlos. As: dpkgipostfix_2.4.53ubuntu1_i386.deb dpkgipostfixmysql_2.4.53ubuntu1_i386.deb O con simples doble clic tambin.

4. Configurando Postfix
Una vez instalado, vamos a /etc/postfix y con nuestro editor favorito, abrimos el archivo principal de configuracin llamado main.cf, el cual est estupendamente comentado. Adems, existen en Internet numerosos y muy buenos documentos sobre cmo configurar postfix desde cero. Pondr a continuacin uno de ejemplo para que puedas ir comparando y comentar solamente los cambios importantes:

queue_directory=/var/spool/postfix command_directory=/usr/sbin daemon_directory=/usr/lib/postfix mail_owner=postfix myhostname=mail.skrdz.com mydomain=skrdz.com myorigin=$myhostname mydestination=$mydomain,$myhostname,localhost.$mydomain,localhost La siguiente opcin nos permite elegir en qu tipo de "formato" postfix va a guardar los mensajes en el buzn de cada usuario. Si elegimos Mailbox, los mensajes se guardan en un nico archivo en el que se van encolando los mensajes segn van llegando al buzn (equivalente al PST de Exchange). El formato Maildir, consiste en un directorio en el que hay tres subdirectorios en el que se van guardando los mensajes en diferentes archivos. Courier-IMAP necesita de esto, por lo que este es el que elegimos (ntese la "/" final): home_mailbox=Maildir/ mail_spool_directory=/var/spool/mail#Dondeestarnlosbuzones relay_domains=$mydestination mynetworks=192.168.1.0/24 smtpd_banner=$myhostnameESMTP$mail_name local_destination_concurrency_limit=2 default_destination_concurrency_limit=10 debug_peer_level=2 debugger_command=PATH=/usr/bin:/usr/X11R6/binxxgdb$daemon_directory/ $process_name$process_id&sleep5 alias_maps=hash:/etc/aliases alias_database=hash:/etc/aliases
(la informacin asignada a la variable debugger_command va en una sola lnea hasta donde dice sleep 5)

Es a partir de aqu donde cambia un poco la cosa. Vamos a ir comentando lnea por lnea: Este parmetro, es lo que se le va a poner delante de un valor que tendremos en la BD para conseguir llegar hasta el lugar donde se guarda el buzn del usuario. Vamos a dejarlo con "/" virtual_mailbox_base=/ Sealamos a postfix que los UserIDs y GroupIDs de los usuarios de correo los obtendr por medio del archivo indicado, que acceder a MySQL virtual_uid_maps=mysql:/etc/postfix/ids.cf virtual_gid_maps=mysql:/etc/postfix/gids.cf A continuacin indicamos que mediante el archivo mysql_virt.cf vamos a acceder a MySQL para ver dnde estn los buzones de los usuarios: virtual_mailbox_maps=mysql:/etc/postfix/mysql_virt.cf local_transport=virtual program_directory=/usr/lib/postfix

Para la limitacin de espacio en los buzones... virtual_create_maildirsize=yes virtual_mailbox_extended=yes #Elsiguienteparametroesparaeltamaodelbuzondecorreo... virtual_mailbox_limit_maps=mysql:/etc/postfix/mysql_limit.cf virtual_mailbox_limit_override=yes virtual_maildir_limit_message = Lo sentimos, el buzon de correo ha sobrepasado el limite establecido. El usuario del midomio.com.sv debera depurarsubuzondecorreo.Gracias! virtual_overquota_bounce=yes #El siguiente parametro es para el tamao mximo de envo de correos (10MB)message_size_limit=10485760 Pasamos a continuacin a mostrar el contenido de los ficheros antes referenciados en el main.cf llamados mysql_virt.cf, ids.cf y gids.cf. Todos ellos hacen referencia a una Base de Datos implementada en MySQL, que ms adelante detallaremos. En este ejemplo, tanto postfix como MySQL est en la misma mquina, por ello el primero se conectar a la base de datos por medio de los sockets internos de unix/linux. Para ello ponemos el parametro hosts con el valor unix:mysqld.sock. Si estuviesen en mquinas distintas, habra que poner el nombre de la mquina en la que se encuentra MySQL. En la realidad, prefiero poner la IP del servidor, por lo que para sta practica, usaremos la IP del servidor.

5. Configurando Postfix
5.1. Archivos ha crear...
Crear los siguientes archivos en /etc/postfix/ mysql_virt.cf #UsuarioypasswordparaaccederalservidorMySQL user=postfix password=postfix #NombredelaBasedeDatosylatabla dbname=mail table=passwd #Elcampoqueelegimosesmaildir(lugardondeestelbuzn),dondeelid #delusuariocoincidaconeldestinatariodelmensaje select_field=maildir where_field=id #ElhostquetieneelMySQL hosts=127.0.0.1

ids.cf user=postfix password=postfix dbname=mail table=passwd #Elcampoqueelegimosesuid select_field=uid where_field=id hosts=127.0.0.1 gids.cf user=postfix password=postfix dbname=mail table=passwd #Elcampoqueelegimosesgid select_field=gid where_field=id hosts=127.0.0.1 mysql_limit.cf user=postfix password=postfix dbname=mail table=passwd #Elcampoqueelegimosesquota select_field=quota where_field=id hosts=127.0.0.1 Tambin debemos modificar el archivo master.cf, aadiendo la lnea si no esta presente: virtualunixnnvirtual Antes de que se nos olvide, debemos de cambiar tambin el archivo /etc/login.defs , descomentando la lnea "QMAIL_DIR Mailidir" para indicar, que todos los usuarios que hagan login en nuestro sistema, usarn tambin el formato Maildir. Debemos de comentar las 2 que aparezcan a su lado, lgicamente. Con ste ltimo procedimiento (en /etc/login.defs) a mi, en lo personal, no me funcion... Si alguien lo pudo hacer, que lo comente en sta entrada de blog (http://skrdz.wordpress.com). Sino, se puede pasar por alto sta configuracin, pero se tendr que hacer referencia de cada usuario de correo en /etc/passwd.

6. Instalando y Configurando MySQL


Hemos visto como Postfix va a hacer uso de MySQL. Vamos pues a instalarlo y configurarlo:

aptgetinstallmysqlserver No hay que tocar nada reseable en la configuracin del MySQL. nicamente, si el servidor va a estar en otra mquina distinta a la mquina donde est postfix, tendremos que abrir un puerto para que pueda "escuchar". Por defecto, esto no es as debido a temas de seguridad. Para hacerlo, basta con comentar la lnea skip-networking del fichero /etc/mysql/my.cfg y rearrancar el servidor. Bien, una vez que lo tenemos instalado, vamos a crear la Base de Datos y la tabla necesaria para guardar toda la informacin. Voy a mostrar cmo hacerlo paso por paso: el # es un comentario pero ste no debe de ir en la consola... solo es para comentar lo que se har. #Nosconectamoscomorootenunprincipio #(lacontraseapordefectoestenblanco, #porloquebastariacondar"enter") mysqlhlocalhosturootp #CreamoslaBAsedeDatosllamadamail mysql>createdatabasemail; #Vemossiestcreada: mysql>showdatabases; #Seleccionamosconlaquevamosatrabajar: mysql>usemail; #Creamoslatablaenlaqueguardaremoslainformacin #delosusuariosvirtuales: mysql>CREATETABLEIFNOTEXISTS`passwd`( `id`char(128)NOTNULLdefault'', `clear`char(128)defaultNULL, `name`char(128)defaultNULL, `uid`int(10)unsigneddefaultNULL, `gid`int(10)unsigneddefaultNULL,`home`char(255)defaultNULL, `maildir`char(255)defaultNULL, `quota`int(8)NOTNULLdefault'10485760', PRIMARYKEY(`id`) ); #Vemoscmohaquedadolatablarecincreada:

mysql>describepasswd; +++++++ |Field|Type|Null|Key|Default|Extra| +++++++ |id|char(128)|NO|PRI||| |clear|char(128)|YES||NULL|| |name|char(128)|YES||NULL|| |uid|int(10)unsigned|YES||NULL|| |gid|int(10)unsigned|YES||NULL|| |home|char(255)|YES||NULL|| |maildir|char(255)|YES||NULL|| |estado|int(3)|NO|MUL|0|| |manual|int(3)|NO||0|| |quota|int(8)|NO||10485760|| +++++++ 10rowsinset(0.01sec) # #Creamosunusuariopostfixyledamostodoslospermisosenestatabla:# mysql>GRANTALLONmail.passwdTOpostfix@localhostIDENTIFIEDBY"postfix"; # #Dependiendodelaconfiguracin,quizshayaquecrear #algnusuariodelestilopostfix@HOSTNAME... #paraquepostfixpuedaaccederdesdeotrasmquinasporejemplo. #Creamostresentradasdeejemplo: mysql>insertintopasswd(id,clear,name,uid,gid,home,maildir) values("user1@splitfoo.homeip.net","user1pass","usuario1","1003","8","/","/ var/spool/mail/user1/Maildir/"); mysql>insertintopasswd(id,clear,name,uid,gid,home,maildir) values("user2@splitfoo.homeip.net.net","user2pass","usuario2","1002","8","/ ","/var/spool/mail/user2/Maildir/"); mysql>insertintopasswd(id,clear,name,uid,gid,home,maildir) values("user3@splitfoo.homeip.net","user3pass","usuario3","1004","8","/","/ var/spool/mail/user3/Maildir/"); mysql>quit #NOTA:paracambiarelpasswordroot,bastaconhacerlosiguiente: mysql>SETPASSWORDFORroot@localhost=password('nuevapass'); mysql>FLUSHPRIVILEGES; Bien, vamos a explicar todo esto un poco ms despacio. Vemos que en la tabla hemos creado una serie de campos, entre ellos id que ser el mail del usuario, clear que es su contrasea para autentificarse (puede cifrarse aadiendola de la forma password("contrasea")), uid que es el UserID y al que podemos ir asignndole nmeros secuencialmente (para ello mirar antes /etc/passwd para ver a partir de cul no est "ocupado"), el gid que en mi caso lo he puesto a 8 y que corresponde con el grupo de "mail" (lo he hecho as para que el usuario pueda escribir en el directorio /var/spool/mail que tiene como grupo propietario a "mail"), home que por ser usuarios "virtuales" lo dejamos a "/" mismo y el maildir o lugar donde se guardar el Maildir del usuario en cuestin. A esta ruta se le aade por delante el valor que habamos puesto en /etc/postfix/main.cf como virtual_mailbox_base y que era "/". Se puede jugar combinando ambas, pero de esta forma aseguramos la ruta.

7. Configurando Courier
Nos disponemos a configurar a continuacin Courier. En s, este programa es tambin un MTA, pero como hemos dicho, para esta funcin ya tenemos a Postfix. Vamos a usar solamente el courier-imap (tambin tiene courier-pop), para lo que hacemos: aptgetinstallcourierimapcourierauthdaemon\ courierauthlibmysqlcourierbase\ Con lo que se nos instalar la aplicacin y el demonio de autentificacin, la autentificacin por MySQL... Los archivos de configuracin, estn situados en /etc/courier/ por lo que debemos dirigirnos all. Lo primero que debemos de cambiar es el modo de autentificacin de los usuarios al usar IMAP. Para ello, editamos el archivo authdaemonrc y sustituimos la lnea authmodulelist="authpam" por authmodulelist="authmysql", por lo que a partir de ahora, ya no se utilizar el mdulo PAM, sino MySQL. Lgicamente hay que indicar a courier dnde debe mirar los usernames y passwords; para ello tenemos el archivo authmysqlrc, que queda de la siguiente forma: MYSQL_SERVERlocalhost MYSQL_USERNAMEpostfix MYSQL_PASSWORDpostfix MYSQL_PORT3306 MYSQL_OPT0 MYSQL_DATABASEmail MYSQL_USER_TABLEpasswd MYSQL_CLEAR_PWFIELDclear DEFAULT_DOMAINskrdz.com MYSQL_UID_FIELDuid MYSQL_GID_FIELDgid MYSQL_LOGIN_FIELDid MYSQL_HOME_FIELDhome MYSQL_NAME_FIELDname MYSQL_MAILDIR_FIELDmaildir MYSQL_QUOTA_FIELDquota En el archivo imapd, tan solo hay que cambiar la ltima entrada y ponerla a YES (IMAPDSTART), que por defecto viene a NO Debemos asegurarnos que todos los demonios necesarios estn corriendo en la mquina: courier-authdaemon, courier-imap, postfix y mysql.

8. Poniendo en marcha todo


Podemos ya entonces a hacer pruebas enviando mails a los usuarios creados en la Base de Datos. No debemos olvidar mirar los logs del sistema para ver los posibles fallos

aparecidos. Cuando se enva un mail a un usuario, se deben de crear un directorio con su nombre en /var/spool/mail/ que contendr el subdirectorio Maildir. Si esto no es as puede que sea por tema de permisos. Asegrate de de que /var/spool/mail/ tenga como grupo propietario a "mail" (en mi caso) y tenga permisos de escritura. Por ejemplo, si se crea la cuenta skrdz@midominio, en /var/spool/mail/ deber de haber una carpeta llamada: skrdz y dentro de sta otra carpeta: Maildir. Para ver los logs en tiempo real, puedes usar el siguiente comando: tailf/var/log/mail.log Los logs que puedes revisar: * * * * mail.err mail.info mail.log mail.warn

Otro fallo que puede aparecer al enviar un mail es "Temporary lookup failure"; si nos fijamos en los logs vemos que postfix no puede conectarse a MySQL. Habr que asegurarse entonces de que realmente nos podemos conectar con el usuario creado en postfix, que tiene los permisos necesarios... Desde un cliente que soporte IMAP, podemos probar tambin que se leen bien los mensajes. Al autentificarse, el nombre de usuario, ser el id de la tabla passwd de la Base de Datos y la contrasea ser el campo clear. En la practica, me he encontrado con que no funciona la autenticacin totalmente con MySQL, por lo que se debe de agregar en /etc/passwd cada buzn de correo como mnimo de la siguiente manera: echoe"skrdz:x:1005:8:skrdz,,,:/">>/etc/passwd Donde 1005 es el UID y 8 es GID Si alguien puede hacerlo funcionar sin agregar los usuarios en /etc/passwd, hagalo saber en el foro de ste curso.

9. Tomar en cuenta...
Existen varios comandos que nos pueden ser tiles mientras usemos Postfix. Una breve lista sera postfix stop. postfix start. postfix reload. Este comando detiene el servicio Postfix (MTA). Este comando inicia el servicio Postfix (MTA). Este comando hace que el servidor vuelva a leer la configuracin sin parar el servicio.

mailq. postfix flush. postmap. postconf. newaliases.

Para ver la cola de mensajes. Fuerza el envo de mensajes de la cola de espera. Este comando sirve para construir los ficheros auxiliares de Postfix. Muestra toda la configuracin de Postfix. Este comando reconstruye la base de datos de alias

10.

Aplicar seguridad a Postfix (todas las opciones son opcionales)

Por seguridad me refiero a configurar el servidor para que solo lo usen las personas que nosotros queremos, y no abusen de l para enviar spam. Se puede usar Listas de bloqueo basadas en DNS. Las listas de bloqueo son unas listas de IP de servidores que supuestamente envian spam. Entre las listas ms usadas se encuentran las RBL de mail-abuse.org o las SBL de spamhaus.org. Puede ver un listado completo de listas de bloqueo en http://www.declude.com/JunkMail/Support/ip4r.htm . Al configurar Postfix para que use estas listas significa que cada vez que llegue un correo a nuestro servidor, Postfix comprobar que la IP del servidor que nos envia el mensaje no se encuentra en esas listas. Una configuracin tpica en el main.cf sera smtpd_client_restrictions= permit_mynetworks, reject_non_fqdn_recipient, reject_rbl_clientsbl.spamhaus.org, reject_rbl_clientrelays.ordb.org#Defasadocreo... reject_rbl_clientopm.blitzed.org#Defasadocreo.. #reject_unauth_destination NOTA. El uso de listas RBL puede producir el rechazo de mensajes legtimos. Antes de usar una lista RBL se recomienda encarecidamente comprobar cules son los criterios de dicha lista para incluir o no un determinado IP. Algunas listas (como SBL o DSBL) utilizan unos criterios muy claros y objetivos y producen pocos o ningn efecto indeseado, mientras que otras tienen unas normas mucho ms agresivas y producen el bloqueo a veces de proovedores enteros, incluyendo un montn de usuarios legtimos. Control de envos El control de envios significa que se pueden definir qu direcciones de correo pueden enviar correo a travs de nuestro servidor, y qu direcciones de correo no pueden enviar correo a nuestro servidor. Por host o redes: Mediante la directiva mynetworks (dentro de /etc/main.cf) definimos qu redes o hosts pueden enviar correo a travs de nuestro Postfix. Un ejemplo sera

mynetworks=127.0.0.0/8,192.168.2.0/24,172.16.3.4/32 Con esta configuracin estamos definiendo: La red 127.0.0.0 puede enviar. Esta red siempre ser nuestra propia mquina (localhost). Los 254 hosts de la red 192.168.2.0 pueden usar nuestro servidor. Solo el host 172.16.3.4 puede usar nuestro servidor, y ninguno ms de la red 172.16.3.0. Por ejemplo, el 172.16.3.14 no podra.

Relay-host Mediante el sistema relay-host definimos que direcciones de correo pueden enviar a travs de nuestro servidor. Esto es util si las personas que queremos que envien correo tienen una direccin e-mail estable, pero una IP que cambia muy a menudo. Una configuracin tpica sera esta smtpd_recipient_restrictions= permit_mynetworks, check_sender_accesshash:/etc/postfix/usuarios reject_unauth_pipelining, reject_non_fqdn_recipient, reject_non_fqdn_sender, reject_unknown_recipient_domain, reject_unknown_sender_domain, check_relay_domains En la directiva check_sender_access vemos que hace referencia a un fichero llamado /etc/postfix/usuarios. Este fichero contiene algo parecido a esto: usuario@dominio.com OK usuario2@dominio.com OK usuario3@dominio2.com OK Esta lista de e-mails significa que dichas direcciones pueden enviar a travs de nuestro servidor, independientemente de la IP que tengan. Como puedes imaginar este mtodo no es muy seguro, ya que si algn spammer averigua una direccin de correo vlida de tu servidor, podr usarla para enviar correo de manera indiscriminada. Cada vez que se modifique este fichero se debe ejecutar el comando cd/etc/postfix&&postmapusuarios&&postfixreload

11.

Conclusiones

Con todo esto, en teora ya deberas poder estar usando Postfix con MySQL y Courier, pero seguramente te encontrars con ms de un problema. Para poder solucionarlos, hay

que estar continuamente mirando los logs para ver cul puede ser la causa. En /var/log/ mail.log aparece bastante informacin cada vez que se manda un mail y puede ayudar bastante. A modo de resumen, podemos decir que el proceso es el siguiente: Cuando mandamos un mail por SMTP a un usuario, postfix lo recibe y lo primero que hace es ver si dicho usuario existe en la base de datos de MySQL. Por ello, se conecta a l y lanza una consulta SQL. Si no obtiene resultado, es que dicho user no existe por lo que no es posible enviar el mail. Si la consulta tiene xito, coge el campo maildir cuyo id corresponde con el destinatario del mail, y mira a ver si existe el directorio Maildir en /var/spool/mail/usuario/. Si no es as lo crea y deposita el mail en dicho directorio, estando ya a disposicin del usuario para que lo consulte por va IMAP a travs de Courier. Todo el tema de usuarios puede ser gestionado fcilmente mediante shell script o por PHP accediendo directamente a la Base de Datos, pudiendo aadir, eliminar, modificar... Lgicamente, a la tabla de usuarios se la puede aadir ms campos de informacin sobre el usuario.

Potrebbero piacerti anche