Postfix + MySQL + Submission Port + Dovecot + Postfix Admin no CentOS 6.3
Guia atualizado de instalação do Postfix no CentOS 6.3 com as novas configurações do Dovecot para o MySQL.
Parte 4: Configurando Dovecot - Teste
O Dovecot usa vários arquivos para dividir as operações, porém, usaremos uns 4. Execute os comandos abaixo e cole o conteúdo da config no arquivo principal do Dovecot:
# mv /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.save
# vim /etc/dovecot/dovecot.conf
A lixeira "trash.conf":
# vim /etc/dovecot/trash.conf
Configurando a arquivo de acesso ao MySQL para o Dovecot. Crie o arquivo abaixo:
ATENÇÃO: "password_query" e "user_query" devem estar na mesma linha.
# vim /etc/dovecot/dovecot_mysql.conf
O arquivo para ler as cotas:
# vim /etc/dovecot/dovecot-dict-quota.conf
Criando o arquivo para tratar os e-mails marcados como SPAM. Este arquivo é um filtro que pode ser usado com um antispam configurado em um proxy de e-mail ou uma solução paga:
# mkdir /home/sieve
# vim /home/sieve/globalfilter.sieve
Por fim, execute:
# chown -R vmail:mail /home/sieve
# service dovecot restart
# chkconfig dovecot on
Execute o comando:
# tail -f /var/log/maillog
E verifique se está tudo bem.
É necessário configurar um reverso para que alguns servidores não rejeitem a sua mensagem ou marquem como spam.
- Como configuro um reverso?
Não perca tempo, ligue para sua operadora do link e peça.
Configurei o meu reverso e depois fui avisado pelo registro.br que o reverso não seria publicado caso eu não cadastrasse meu bloco. Então, é mais fácil ligar para a sua operadora.
Acesse o site http://www.mxtoolbox.com/ e faça um teste no seu servidor de e-mail se ele estiver acessível via Internet.
# mv /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.save
# vim /etc/dovecot/dovecot.conf
##
## Dovecot config file
##
protocols = imap pop3 lmtp sieve
auth_mechanisms = plain login
passdb {
driver = sql
args = /etc/dovecot/dovecot_mysql.conf
}
userdb {
driver = prefetch
}
userdb {
driver = sql
args = /etc/dovecot/dovecot_mysql.conf
}
mail_location = maildir:/home/vmail/%d/%n
first_valid_uid = 101
#last_valid_uid = 0
first_valid_gid = 12 # Se o grupo mail tiver um GID diferente de 12 mude esse valor aqui. #last_valid_gid = 0
#mail_plugins =
mailbox_idle_check_interval = 30 secs
maildir_copy_with_hardlinks = yes
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
}
service pop3-login {
inet_listener pop3 {
port = 110
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
service lmtp {
unix_listener lmtp {
#mode = 0666
}
}
service imap {
vsz_limit = 256M
}
service pop3 {
}
service auth {
unix_listener auth-userdb {
mode = 0666
user = vmail
group = mail
}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
}
service auth-worker {
}
service dict {
unix_listener dict {
mode = 0666
user = vmail
group = mail
}
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
service_count = 1
process_min_avail = 0
vsz_limit = 64M
}
service managesieve {
}
ssl = yes
ssl_cert = </etc/pki/tls/certs/mail.seu_dominio.com.br.crt
ssl_key = </etc/pki/tls/private/ mail.seu_dominio.com.br.key
ssl_verify_client_cert = no
#ssl_ca =
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
protocol lda {
mail_plugins = quota sieve
postmaster_address = postmaster@seu_dominio.com.br
}
protocol imap {
mail_plugins = quota imap_quota trash
imap_client_workarounds = delay-newmail
}
lmtp_save_to_detail_mailbox = yes
protocol lmtp {
mail_plugins = sieve
}
protocol pop3 {
mail_plugins = quota
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
protocol sieve {
managesieve_max_line_length = 65536
managesieve_implementation_string = Dovecot Pigeonhole
managesieve_max_compile_errors = 5
}
dict {
quotadict = mysql:/etc/dovecot/dovecot-dict-quota.conf
}
plugin {
quota = dict:user::proxy::quotadict
acl = vfile:/etc/dovecot/acls
trash = /etc/dovecot/trash.conf
sieve_global_path = /home/sieve/globalfilter.sieve
sieve = ~/dovecot.sieve
sieve_dir = ~/sieve
sieve_global_dir = /home/sieve/
#sieve_extensions = +notify +imapflags
sieve_max_script_size = 1M
#sieve_max_actions = 32
#sieve_max_redirects = 4
}
## Dovecot config file
##
protocols = imap pop3 lmtp sieve
auth_mechanisms = plain login
passdb {
driver = sql
args = /etc/dovecot/dovecot_mysql.conf
}
userdb {
driver = prefetch
}
userdb {
driver = sql
args = /etc/dovecot/dovecot_mysql.conf
}
mail_location = maildir:/home/vmail/%d/%n
first_valid_uid = 101
#last_valid_uid = 0
first_valid_gid = 12 # Se o grupo mail tiver um GID diferente de 12 mude esse valor aqui. #last_valid_gid = 0
#mail_plugins =
mailbox_idle_check_interval = 30 secs
maildir_copy_with_hardlinks = yes
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
}
service pop3-login {
inet_listener pop3 {
port = 110
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
service lmtp {
unix_listener lmtp {
#mode = 0666
}
}
service imap {
vsz_limit = 256M
}
service pop3 {
}
service auth {
unix_listener auth-userdb {
mode = 0666
user = vmail
group = mail
}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
}
service auth-worker {
}
service dict {
unix_listener dict {
mode = 0666
user = vmail
group = mail
}
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
service_count = 1
process_min_avail = 0
vsz_limit = 64M
}
service managesieve {
}
ssl = yes
ssl_cert = </etc/pki/tls/certs/mail.seu_dominio.com.br.crt
ssl_key = </etc/pki/tls/private/ mail.seu_dominio.com.br.key
ssl_verify_client_cert = no
#ssl_ca =
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
protocol lda {
mail_plugins = quota sieve
postmaster_address = postmaster@seu_dominio.com.br
}
protocol imap {
mail_plugins = quota imap_quota trash
imap_client_workarounds = delay-newmail
}
lmtp_save_to_detail_mailbox = yes
protocol lmtp {
mail_plugins = sieve
}
protocol pop3 {
mail_plugins = quota
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
protocol sieve {
managesieve_max_line_length = 65536
managesieve_implementation_string = Dovecot Pigeonhole
managesieve_max_compile_errors = 5
}
dict {
quotadict = mysql:/etc/dovecot/dovecot-dict-quota.conf
}
plugin {
quota = dict:user::proxy::quotadict
acl = vfile:/etc/dovecot/acls
trash = /etc/dovecot/trash.conf
sieve_global_path = /home/sieve/globalfilter.sieve
sieve = ~/dovecot.sieve
sieve_dir = ~/sieve
sieve_global_dir = /home/sieve/
#sieve_extensions = +notify +imapflags
sieve_max_script_size = 1M
#sieve_max_actions = 32
#sieve_max_redirects = 4
}
A lixeira "trash.conf":
# vim /etc/dovecot/trash.conf
1 Spam
# Descomente se quiser jogar para a lixeira o Spam.
# 2 Trash
# Descomente se quiser jogar para a lixeira o Spam.
# 2 Trash
Configurando a arquivo de acesso ao MySQL para o Dovecot. Crie o arquivo abaixo:
ATENÇÃO: "password_query" e "user_query" devem estar na mesma linha.
# vim /etc/dovecot/dovecot_mysql.conf
driver = mysql
connect = host=localhost dbname=postfix user=postfix password=sua_senha default_pass_scheme = MD5-CRYPT
# Tudo isso abaixo deve estar em apenas uma linha:
password_query = SELECT username as user, password, concat('/home/vmail/', maildir) as userdb_home, concat('maildir:/home/vmail/', maildir) as userdb_mail, 101 as userdb_uid, 12 as userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'
# Tudo isso abaixo deve estar em apenas uma linha. Se o grupo mail for diferente de 12 troque no trecho "12 AS gid,":
user_query = SELECT concat('/home/vmail/', maildir) as home, concat('maildir:/home/vmail/', maildir) as mail, 101 AS uid, 12 AS gid, CONCAT('*:messages=10000:bytes=', quota) as quota_rule FROM mailbox WHERE username = '%u' AND active = '1'
connect = host=localhost dbname=postfix user=postfix password=sua_senha default_pass_scheme = MD5-CRYPT
# Tudo isso abaixo deve estar em apenas uma linha:
password_query = SELECT username as user, password, concat('/home/vmail/', maildir) as userdb_home, concat('maildir:/home/vmail/', maildir) as userdb_mail, 101 as userdb_uid, 12 as userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'
# Tudo isso abaixo deve estar em apenas uma linha. Se o grupo mail for diferente de 12 troque no trecho "12 AS gid,":
user_query = SELECT concat('/home/vmail/', maildir) as home, concat('maildir:/home/vmail/', maildir) as mail, 101 AS uid, 12 AS gid, CONCAT('*:messages=10000:bytes=', quota) as quota_rule FROM mailbox WHERE username = '%u' AND active = '1'
O arquivo para ler as cotas:
# vim /etc/dovecot/dovecot-dict-quota.conf
connect = host=localhost dbname=postfix user=postfix password=sua_senha
map {
pattern = priv/quota/storage
table = quota2
username_field = username
value_field = bytes
}
map {
pattern = priv/quota/messages
table = quota2
username_field = username
value_field = messages
}
map {
pattern = priv/quota/storage
table = quota2
username_field = username
value_field = bytes
}
map {
pattern = priv/quota/messages
table = quota2
username_field = username
value_field = messages
}
Criando o arquivo para tratar os e-mails marcados como SPAM. Este arquivo é um filtro que pode ser usado com um antispam configurado em um proxy de e-mail ou uma solução paga:
# mkdir /home/sieve
# vim /home/sieve/globalfilter.sieve
require "fileinto";
if exists "X-Spam-Flag" {
if header :contains "X-Spam-Flag" "NO" {
} else {
fileinto "Spam";
stop;
}
}
if header :contains "subject" ["***SPAM***"] {
fileinto "Spam";
stop;
}
if exists "X-Spam-Flag" {
if header :contains "X-Spam-Flag" "NO" {
} else {
fileinto "Spam";
stop;
}
}
if header :contains "subject" ["***SPAM***"] {
fileinto "Spam";
stop;
}
Por fim, execute:
# chown -R vmail:mail /home/sieve
# service dovecot restart
# chkconfig dovecot on
Testando o servidor
Restarte o Postfix e Dovecot e configure o seu cliente de e-mail, ou Webmail (não coloquei Webmail aqui no tutorial, porque há vários tutorias sobre isso aqui mesmo no VOL).Execute o comando:
# tail -f /var/log/maillog
E verifique se está tudo bem.
É necessário configurar um reverso para que alguns servidores não rejeitem a sua mensagem ou marquem como spam.
- Como configuro um reverso?
Não perca tempo, ligue para sua operadora do link e peça.
Configurei o meu reverso e depois fui avisado pelo registro.br que o reverso não seria publicado caso eu não cadastrasse meu bloco. Então, é mais fácil ligar para a sua operadora.
Acesse o site http://www.mxtoolbox.com/ e faça um teste no seu servidor de e-mail se ele estiver acessível via Internet.