Postfix e Dovecot

Desde que o Slackware começou a usar o Postfix e o Dovecot como servidores de email e imap, que tem sido uma dor de cabeça tentar configurá-los.

Ontem voltei a tentar e já tenho um servidor a funcionar minimamente.

Os sites que usei para ver como configurar o Postfix foram [1], [2] e [3].
Para o Dovecot usei o site [1]. Estou a ler também [2] para tentar configurar o IMAPS.

Para o Postfix, editei o ficheiro /etc/postfix/main.cf e adicionei as linhas seguintes:

mydomain = myserver.pt
myorigin = $mydomain
inet_interfaces = all
mydestination = localhost.$mydomain, localhost, $mydomain
mynetworks = 192.168.0.0/16, 127.0.0.0/8
relay_domains = $mydestination
relayhost = [my-relay-server.pt]

Para o Dovecot, editei o ficheiro /etc/dovecot/dovecot.conf e adicionei as linhas seguintes:

protocols = imap
listen = *, ::
login_trusted_networks = 192.168.0.0/16

Depois, na diretoria /etc/dovecot/conf.d:

Editei o ficheiro 10-logging.conf e adicionei as linhas seguintes:

log_path = /var/log/dovecot/dovecot.log

Editei o ficheiro 10-mail.conf e adicionei as linhas seguintes:

mail_location = mbox:~/mail:INBOX=/var/spool/mail/%u
mail_access_groups = mail

A configuração anterior mail_access_groups = mail é perigosa, pois permite que utilizadores com shell no login, tenham acesso às caixas de correio dos outros. Havia uma outra alternativa para resolver um erro que o Dovecot dava, mas não a compreendi.

Sem esta configuração, o erro que surgia no ficheiro de log era:

Error: fchown(/home/user/mail/.imap/INBOX, group=12(mail)) failed: 
Operation not permitted (egid=1000(user), group based on 
/var/spool/mail/user - 
see http://wiki2.dovecot.org/Errors/ChgrpNoPerm)

Editei o ficheiro 10-ssl.conf e adicionei as linhas seguintes:

ssl = no

E comentei também as linhas seguintes, enquanto não configuro o IMAPS.

#ssl_cert = </etc/ssl/certs/dovecot.pem
#ssl_key = </etc/ssl/private/dovecot.pem

Para testar se o dovecot está a funcionar bem, executei o comando seguinte:

mutt -f imap://user@myserver.pt

Vou começar por configurar as máquinas mais simples, e mudá-las do sendmail/imapd para o postfix/dovecot. Quando estiver tudo a funcionar, vou tentar configurar também a máquina mais complexa, que serve de relay às outras.

PECL e MCrypt

O PHP 7.2 deixou de ter suporte para as funções do módulo MCrypt.

Durante algum tempo tive uma máquina virtual com uma versão antiga do PHP, para poder receber dados cifrados por uma aplicação Android que desenvolvi. Hoje decidi resolver o problema e descobri que a solução era muito mais fácil do que pensava ser.

Para ter acesso às funções do módulo MCrypt, bastou instalar o módulo MCrypt do PECL, com o seguinte comando:

pecl install mcrypt

Antes disso, tive que atualizar o PHP da versão antiga para a versão atual 7.3.11. E depois, tive que incluir a seguinte linha no ficheiro php.ini:

extension=mcrypt

Reiniciei o Apache, e as funções mcrypt já estão disponíveis.