28.3. Arquivos de Configuração do Sendmail
Anterior | Capítulo 28. Correio Eletrônico | Próxima

## 28.3. Arquivos de Configuração do Sendmail

Contributed by Christopher Shumway.

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.

Anterior | Acima | Próxima
28.2. Componentes de Email | Principal | 28.4. Alterando o Mail Transfer Agent

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>.