Sendmail é o MTA padrão instalado com o FreeBSD. Ele aceita emails de MUAs e os entrega ao host de email apropriado, conforme definido por sua configuração. O Sendmail também pode aceitar conexões de rede e enviar mensagens para caixas de correio locais ou para outro programa.
Os arquivos de configuração do Sendmail estão localizados em /etc/mail
. Esta seção descreve esses arquivos em mais detalhes.
/etc/mail/access
Este arquivo de acesso define quais hosts ou endereços de IP têm acesso ao servidor de email local e que tipo de acesso eles possuem. Os hosts listados como OK
, que é a opção padrão, têm permissão para enviar emails para esse host, desde que o destino final do email seja a máquina local. Os hosts listados como REJECT
são rejeitados para todas as conexões de email. Os hosts listados como RELAY
têm permissão para enviar emails para qualquer destino usando este servidor de email. Os hosts listados como ERROR
terão seus emails retornados com o erro de email especificado. Se um host estiver listado como SKIP
, o Sendmail interromperá a pesquisa atual por esta entrada sem aceitar ou rejeitar o email. Os hosts listados como QUARANTINE
terão suas mensagens retidas e receberão o texto especificado como o motivo da retenção.
Exemplos de uso destas opções para endereços IPv4 e IPv6 podem ser encontrados na configuração de exemplo do FreeBSD, /etc/mail/access.sample
:
# $FreeBSD: head/pt_BR.ISO8859-1/books/handbook/book.xml 53285 2019-07-30 23:45:23Z dbaio $
#
# Mail relay access control list. Default is to reject mail unless the
# destination is local, or listed in /etc/mail/local-host-names
#
## Examples (commented out for safety)
#From:cyberspammer.com ERROR:"550 We don't accept mail from spammers"
#From:okay.cyberspammer.com OK
#Connect:sendmail.org RELAY
#To:sendmail.org RELAY
#Connect:128.32 RELAY
#Connect:128.32.2 SKIP
#Connect:IPv6:1:2:3:4:5:6:7 RELAY
#Connect:suspicious.example.com QUARANTINE:Mail from suspicious host
#Connect:[127.0.0.3] OK
#Connect:[IPv6:1:2:3:4:5:6:7:8] OK
Para configurar o arquivo de acesso, use o formato mostrado no exemplo para adicionar entradas em /etc/mail/access
, mas não coloque um símbolo de comentário (#
) na frente das entradas. Crie uma entrada para cada host ou rede cujo acesso deve ser configurado. Os remetentes de email que correspondem ao lado esquerdo da tabela são afetados pela ação no lado direito da tabela.
Sempre que este arquivo for atualizado, atualize seu banco de dados e reinicie o Sendmail:
#
makemap hash /etc/mail/access < /etc/mail/access
#
service sendmail restart
/etc/mail/aliases
Este arquivo aliases contém uma lista de caixas de correio virtuais que são expandidas para usuários, arquivos, programas ou outros aliases. Aqui estão algumas entradas para ilustrar o formato do arquivo:
root: localuser ftp-bugs: joe,eric,paul bit.bucket: /dev/null procmail: "|/usr/local/bin/procmail"
O nome da caixa de correio no lado esquerdo dos dois pontos é expandido para o(s) alvo(s) à direita. A primeira entrada expande a caixa de correio root
para a caixa de correio localuser
, que é então pesquisada no /etc/mail/aliases
. Se nenhuma correspondência for encontrada, a mensagem será entregue para localuser
. A segunda entrada mostra uma lista de email. Um email para ftp-bugs
é expandido para as três caixas de correio locais joe
, eric
e paul
. Uma caixa de correio remota pode ser especificada como user@example.com
. A terceira entrada mostra como escrever mensagens em um arquivo, neste caso, /dev/null
. A última entrada demonstra como enviar email para um programa, /usr/local/bin/procmail
, através de um pipe UNIX®. Consulte aliases(5) para obter mais informações sobre o formato desse arquivo.
Sempre que este arquivo for atualizado, execute newaliases
para atualizar e inicializar o banco de dados de aliases.
/etc/mail/sendmail.cf
Este é o arquivo de configuração principal do Sendmail. Ele controla o comportamento geral do Sendmail, incluindo tudo desde a tradução de endereços de email até a impressão de mensagens de rejeição para servidores de email remotos. Assim, este arquivo de configuração é bastante complexo. Felizmente, esse arquivo raramente precisa ser alterado para servidores de email padrão.
O arquivo de configuração master do Sendmail pode ser criado a partir de macros m4(1) que definem os recursos e o comportamento do Sendmail. Consulte /usr/src/contrib/sendmail/cf/README
para mais detalhes.
Sempre que alterações nesse arquivo são feitas, o Sendmail precisa ser reiniciado para que as alterações entrem em vigor.
/etc/mail/virtusertable
Esse arquivo mapeia endereços de email de domínios virtuais para caixas de correio usuários reais. Essas caixas de correio podem ser locais, remotas, aliases definidas em /etc/mail/aliases
ou arquivos. Isso permite que vários domínios virtuais sejam hospedados em uma máquina.
O FreeBSD fornece um exemplo de arquivo de configuração em /etc/mail/virtusertable.sample
para demonstrar ainda mais seu formato. O exemplo a seguir demonstra como criar entradas personalizadas usando esse formato:
root@example.com root postmaster@example.com postmaster@noc.example.net @example.com joe
Este arquivo é processado pela primeira entrada que for correspondida. Quando um endereço de email corresponde ao endereço à esquerda, ele é mapeado para a caixa de correio local listada à direita. O formato da primeira entrada neste exemplo mapeia um endereço de email específico para uma caixa de correio local, enquanto o formato da segunda entrada mapeia um endereço de email específico para uma caixa de correio remota. Por fim, qualquer endereço de email de example.com
que não correspondeu a nenhuma das entradas anteriores corresponderá ao último mapeamento e será enviado para a caixa de correio local joe
. Ao criar entradas personalizadas, use este formato e adicione-as ao /etc/mail/virtusertable
. Sempre que este arquivo for editado, atualize seu banco de dados e reinicie o Sendmail:
#
makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
#
service sendmail restart
/etc/mail/relay-domains
Em uma instalação padrão do FreeBSD, o Sendmail é configurado para enviar apenas mensagens provenientes do host em que está sendo executado. Por exemplo, se um servidor POP estiver disponível, os usuários poderão verificar os emails de locais remotos, mas não poderão enviar emails de domínios externos. Normalmente, após alguns momentos da tentativa, um email será enviado de MAILER-DAEMON
com uma mensagem 5.7 Relaying Denied.
A solução mais simples é adicionar o FQDN do ISP ao /etc/mail/relay-domains
. Se vários endereços forem necessários, adicione-os um por linha:
your.isp.example.com other.isp.example.net users-isp.example.org www.example.org
Depois de criar ou editar este arquivo, reinicie o Sendmail com service sendmail restart
.
Agora, qualquer mensagem enviada pelo sistema por qualquer domínio dessa lista, desde que o usuário tenha uma conta no sistema, será aceita. Isso permite que os usuários enviem emails de domínios remotos do sistema sem precisar liberar acesso externo ao sistema, evitando SPAM da Internet.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.