Postfix precisa saber onde e como ele pode procurar todas as informações relacionadas com caixa de entrada. Para este efeito, iremos criar os seguintes arquivos em /etc/postfix.
# cd /etc/postfix
Criar o arquivo
mysql_virtual_alias_maps.cf para encaminhar e-mails de um endereço de e-mail para outro.
# vi /etc/postfix/mysql_virtual_alias_maps.cf
user = mail
password = mail
hosts = localhost
dbname = mail
table = alias
select_field = goto
where_field = address
additional_conditions = and active = '1'
#query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
Criar o arquivo "mysql_virtual_domains_maps.cf" para o mapeamento de domínios virtuais.
# vi /etc/postfix/mysql_virtual_domains_maps.cf
user = mail
password = mail
hosts = localhost
dbname = mail
table = domain
select_field = domain
where_field = domain
additional_conditions = and backupmx = '0' and active = '1'
#query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '0' AND active = '1'
Criar o arquivo
mysql_virtual_mailbox_maps.cf, que é o mapeamento de endereços de e-mail para a localização da caixa de entrada dos usuários no seu disco rígido:
# vi /etc/postfix/mysql_virtual_mailbox_maps.cf
user = mail
password = mail
hosts = localhost
dbname = mail
table = mailbox
select_field = CONCAT(domain,'/',maildir)
where_field = username
additional_conditions = and active = '1'
#query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = '1'
Finalmente criar o arquivo
mysql_virtual_mailbox_limit_maps.cf, que será usado para mapear os utilizadores de correio limite de cota.
# vi /etc/postfix/mysql_virtual_mailbox_limit_maps.cf
user = mail
password = mail
hosts = localhost
dbname = mail
table = mailbox
select_field = quota
where_field = username
additional_conditions = and active = '1'
#query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'
Depois de criados, dê permissão para os arquivos:
# cd /etc/postfix
# chown root:postfix *.cf
# chmod 644 *.cf
Antes de mexer no arquivo de configuração, criar uma cópia de segurança do main.cf:
# mv /etc/postfix/main.cf /etc/postfix/main.cf.orig
Vamos começar a configuração:
# vi /etc/postfix/main.cf
############## Postfix###############
#Data modificado em 15.02.2010
#Andre Costa
#-----------------------------------
smtpd_banner = $myhostname
biff = no
append_dot_mydomain = no
#relayhost =
#relay_domains = $mynetworks
mynetworks = 127.0.0.0/8, 172.16.0.0/24, 172.16.3.0/24, 172.16.1.0/24
inet_interfaces = all
#inet_protocols = all
mailbox_size_limit = 0
recipient_delimiter = +
alias_database = hash:/etc/postfix/aliases
alias_maps = $alias_database
myhostname = mail.domain.com.br
mydomain = domain.com.br
myorigin = $myhostname
mydestination = $myhostname, localhost.$mydomain
mail_spool_directory = /var/spool/mail
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5
disable_vrfy_command = no
readme_directory = /usr/share/doc/postfix-2.2.10/README_FILES
sample_directory = /usr/share/doc/postfix-2.2.10/samples
sendmail_path = /usr/sbin/sendmail
html_directory = no
setgid_group = postdrop
command_directory = /usr/sbin
manpage_directory = /usr/share/man
daemon_directory = /usr/libexec/postfix
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
queue_directory = /var/spool/postfix
mail_owner = postfix
#numero de msgs que podem ser enviadas por vez
smtpd_recipient_limit = 100
#Se e obrigado a fazer helo
smtpd_helo_required = yes
unknown_local_recipient_reject_code = 450
#Quantidades de processos o valor padrão e 100
default_process_limit = 500
####################postfix section ends here###############
#$config_directory
#######################Virtual Domains Users and mailboxes###############
virtual_mailbox_domains = mysql:$config_directory/mysql_virtual_domains_maps.cf
virtual_mailbox_base = /var/vmail
virtual_mailbox_maps = mysql:$config_directory/mysql_virtual_mailbox_maps.cf
virtual_alias_maps = mysql:$config_directory/mysql_virtual_alias_maps.cf
virtual_minimum_uid = 150
virtual_uid_maps = static:150
virtual_gid_maps = static:12
##############################Virtual section of main.cf ends##############
#################### SASL/TLS Authentication###########################
######SASL PART#########
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain =
#######################################################################
smtpd_recipient_restrictions = reject_invalid_hostname, reject_unauth_pipelining, permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, check_client_access, reject_rbl_client sbl.spamhaus.org, reject_rbl_client sbl-xbl.spamhaus.org, permit
######TLS PART###########
#smptpd_tls_cert_file = /etc/postfix/ssl/mailserver/smtpd.crt
#smtpd_tls_key_file = /etc/postfix/ssl/mailserver/smtpd.key
#smtpd_tls_CAfile = /etc/postfix/ssl/mailserver/cacert.pem
#smtp_tls_auth_only = yes
#smtp_use_tls = no
#smtpd_use_tls = yes
#smtpd_tls_received_header = no
#smtp_tls_note_starttls_offer = yes
#smtpd_tls_loglevel = 1
#tls_random_source = dev:/dev/urandom
#smtpd_tls_session_cache_timeout = 3600s
#smtpd_tls_recieved_header = yes
###########################SASL/TLS Authentication ends here#############
data_directory = /var/lib/postfix
Criar diretório para domínios e usuários virtuais:
# mkdir /var/vmail
# useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Virtual mailbox" vmail
# chmod 770 /var/vmail/
# chown vmail:mail /var/vmail
# cp /etc/aliases* /etc/postfix/
# newaliases