Servidor de e-mail Postfix + MySQL + Dovecot + Cyrus
Nesse artigo aprenderemos a configurar rapidamente um servidor de e-mail com Postfix + MySQL + Dovecot + Cyrus usando RHEL 5.2.
Parte 7: Configuração do Dovecot, servidor POP3 e IMAP
Vamos configurar o Dovecot, que provê tanto um POP3 como um serviço de IMAP.
Para lidar com usuários virtuais com Dovecot vamos criar o arquivo:
# vi /etc/dovecot-mysql.conf
Nós vamos fazer o backup do arquivo original para dovecot.conf.orig e alterar o arquivo de execução para as nossas necessidades.
# cp -p /etc/dovecot.conf /etc/dovecot.conf.orig
# vi /etc/dovecot.conf
Apenas edite as seguintes linhas:
Permissão para os arquivos do Dovecot:
# chmod 600 /etc/dovecot*
# chown vmail /etc/dovecot*
# mysql -u mail -p
mysql> USE mail;
Primeiro crie um domínio virtual na tabela de domínio (domain.com.br) usando o comando abaixo:
mysql> INSERT INTO domain (domain,description,aliases,mailboxes,maxquota,transport,backupmx,active) VALUES ('domain.com.br','Virtual domain','10','10', '0','virtual', '0','1');
Agora crie um usuário virtual na tabela mailbox:
mysql> INSERT INTO mailbox (username,password,name,maildir,quota,domain,active) VALUES ('andre.costa@domain.com.br','teste', 'Andre Costa','andre.costa/', '0','domain.com.br','1');
Para lidar com usuários virtuais com Dovecot vamos criar o arquivo:
# vi /etc/dovecot-mysql.conf
######dovecot-mysql.conf should look like this##########
# NOTE: '\' line splitting is used only for readability, currently Dovecot doesn't support it
# The mysqld.sock socket may be in different locations in different systems
driver = mysql
default_pass_scheme = plain
#connect = host=/var/lib/mysql/mysql.sock dbname=mail user=mail password=mail
# Alternatively you can connect to localhost as well:
connect = host=localhost dbname=mail user=mail password=mail
password_query = SELECT password FROM mailbox WHERE username = '%u'
user_query = SELECT '/var/vmail/%d/%n' as home, 'maildir:/var/vmail/%d/%n' as mail, 150 AS uid, 12 AS gid, concat('dirsize:storage=',quota) AS quota FROM mailbox WHERE username ='%u' AND active ='1'
####################ends here####################
# NOTE: '\' line splitting is used only for readability, currently Dovecot doesn't support it
# The mysqld.sock socket may be in different locations in different systems
driver = mysql
default_pass_scheme = plain
#connect = host=/var/lib/mysql/mysql.sock dbname=mail user=mail password=mail
# Alternatively you can connect to localhost as well:
connect = host=localhost dbname=mail user=mail password=mail
password_query = SELECT password FROM mailbox WHERE username = '%u'
user_query = SELECT '/var/vmail/%d/%n' as home, 'maildir:/var/vmail/%d/%n' as mail, 150 AS uid, 12 AS gid, concat('dirsize:storage=',quota) AS quota FROM mailbox WHERE username ='%u' AND active ='1'
####################ends here####################
Nós vamos fazer o backup do arquivo original para dovecot.conf.orig e alterar o arquivo de execução para as nossas necessidades.
# cp -p /etc/dovecot.conf /etc/dovecot.conf.orig
# vi /etc/dovecot.conf
Apenas edite as seguintes linhas:
base_dir = /var/run/dovecot/
protocols = imap imaps pop3 pop3s
listen = [::]
log_path = /var/log/maillog
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = mbox:/var/vmail/%d/%n
first_valid_uid = 150
last_valid_uid = 150
maildir_copy_with_hardlinks = yes
mbox_read_locks = fcntl
passdb sql {
args = /etc/dovecot-mysql.conf
}
userdb sql {
args = /etc/dovecot-mysql.conf
}
protocols = imap imaps pop3 pop3s
listen = [::]
log_path = /var/log/maillog
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = mbox:/var/vmail/%d/%n
first_valid_uid = 150
last_valid_uid = 150
maildir_copy_with_hardlinks = yes
mbox_read_locks = fcntl
passdb sql {
args = /etc/dovecot-mysql.conf
}
userdb sql {
args = /etc/dovecot-mysql.conf
}
Permissão para os arquivos do Dovecot:
# chmod 600 /etc/dovecot*
# chown vmail /etc/dovecot*
Criando usuários e domínios virtuais
Agora vamos criar domínios virtuais e usuários virtuais em nosso banco de dados.# mysql -u mail -p
mysql> USE mail;
Primeiro crie um domínio virtual na tabela de domínio (domain.com.br) usando o comando abaixo:
mysql> INSERT INTO domain (domain,description,aliases,mailboxes,maxquota,transport,backupmx,active) VALUES ('domain.com.br','Virtual domain','10','10', '0','virtual', '0','1');
Agora crie um usuário virtual na tabela mailbox:
mysql> INSERT INTO mailbox (username,password,name,maildir,quota,domain,active) VALUES ('andre.costa@domain.com.br','teste', 'Andre Costa','andre.costa/', '0','domain.com.br','1');
Você já configurou o mesmo como um servidor de e-mail interno? Em uma rede baseada em windows 2003 server?