20.3. Configuração do sendmail

Contribuído por Christopher Shumway.

sendmail(8) é o agente de transferência de mensagens (MTA) padrão no FreeBSD. A função do sendmail é aceitar mensagens a partir de um agente de usuário de mensagens (MUA) e entregá-la ao mailer apropriado como definido pelo arquivo de configuração. sendmail pode também aceitar conexões de rede e entregar as mensagens em caixas de mensagens locais ou entregá-las para outro programa.

O sendmail usa os seguintes arquivos de configuração:

Nome do arquivo Função
/etc/mail/access sendmail acessa o arquivo da base de dados
/etc/mail/aliases Apelidos de caixa de mensagem
/etc/mail/local-host-names Lista dos hosts que o sendmail aceita mensagens
/etc/mail/mailer.conf Arquivo de configuração do Mailer
/etc/mail/mailertable Tabela de entrega do mailer
/etc/mail/sendmail.cf O arquivo de configuração principal do sendmail
/etc/mail/virtusertable Usários virtuais e tabelas de domínios

20.3.1. /etc/mail/access

A banco de dados de acesso que define quais host(s) ou endereço IP tem acesso local ao servidor de email e qual tipo de acesso eles tem. Os hosts podem ser listados com OK, REJECT, RELAY ou simplesmente passar para o sendmail segurar erros de rotina dado pelo encarregado do envio de mensagens. Os hosts que são listados como OK, são por padrão permitidos enviar mensagens para este host assim como enviar mensagens através da maquina local para destinatários finais. Os hosts que são listados com REJECT são rejeitados por qualquer conexão de email no servidor. Os hosts que tem a opção RELAY para seu hostname, são permitidos para enviar mensagens para qualquer destino através desse servidor de correio.

Exemplo 20-1. Configurando o banco de dados de acesso do sendmail

cyberspammer.com       550 Nós não aceitamos mensagens de spammers
FREE.STEALTH.MAILER@        550 Nós não aceitamos mensagens de spammers
another.source.of.spam    REJECT
okay.cyberspammer.com      OK
128.32            RELAY

Neste exemplo nós temos cinco entradas. Remetentes de mensagens que são encontrados do lado esquerdo da tabela são afetados pela ação do lado direito da tabela. Os primeiros dois exemplos dão um erro de código para a rotina do sendmail A mensagem é emitida para o host remoto quando é encontrado o email do lado esquerdo da tabela. A próxima entrada, rejeita mensagens vindo de um host específico na internet, another.source.of.spam. A próxima entrada aceita conexões de mensagens vindo do host okay.cyberspammer.com, que é mais exata do que a linha acima cyberspammer.com. Definições mais específicas sobreescrevem definições menos exatas. A última entrada permite relaying de correio eletrônico vindo dos hosts com endereço IP que começam com 128.32. Estes hosts estão aptos a enviar mensagens através desse servidor de correio que são destinados para outros servidores de correio.

Quando este arquivo é atualizado, você precisa executar o comando make no diretório /etc/mail/ para atualizar a base de dados.

20.3.2. /etc/mail/aliases

A base de dados de apelidos contém a lista de caixas de mensagens virtuais que é expandido a outros usuário(s), arquivos, programas ou outros apelidos. Aqui estão alguns exemplos que podem ser usado no /etc/mail/aliases:

Exemplo 20-2. Apelidos de email

root: localuser
ftp-bugs: joe,eric,paul
bit.bucket:  /dev/null
procmail: "|/usr/local/bin/procmail"

O formato do arquivo é simples; O nome da caixa de mensagens(e-mail) é indicado do lado esquerdo dos dois pontos e depois do lado direito é o destino da mensagens para onde serão direcionadas. O primeiro exemplo simplesmente direciona a caixa de correio de mensagens que chegam para o usuário root para a caixa de correio do usuário localuser, que é olhada novamente na base de dados de apelidos. Se nada for encontrado, então a mensagem é entregue, ao usuário local localuser. O próximo exemplo mostra uma lista de emails. Mensagens para a caixa de correio ftp-bugs é direcionada para três caixas de mensagem local, joe, eric, e paul. Note que uma caixa de mensagens remota pode ser especificada como usuário@exemplo.com.br. O próximo exemplo mostra escrevendo uma mensagem para um arquivo, neste caso /dev/null. O último exemplo mostra enviando mensagens para um programa, neste caso a mensagem é escrita para uma entrada padrão do /usr/local/bin/procmail através do UNIX® pipe.

Quando este arquivo é atualizado, você precisa executar o comando make no /etc/mail/ para atualizar a base de dados.

20.3.3. /etc/mail/local-host-names

Esta é a lista dos hostnames do sendmail(8) que são aceitos como nomes de host locais. Coloque qualquer domínio ou host do sendmail que está poderá receber mensagens. Por exemplo, se este servidor aceitar mensagens para este domínio exemplo.com e o host mail.exemplo.com, o local-host-names pode ter algo como isto:

example.com
mail.example.com

Quando este arquivo é atualizado, O sendmail(8) precisa ser reiniciado para ativar as mudanças.

20.3.4. /etc/mail/sendmail.cf

O sendmail tem como arquivo de configuração principal, o sendmail.cf que controla o comportamento total do sendmail, incluindo tudo de reescrita de endereços de mensagens à impressão de mensagens rejeição aos servidores remotos de correio. Naturalmente, com um papel tão diverso, este arquivo de configuração é completamente complexo e os detalhes fogem do escopo desta seção. Felizmente, este arquivo de configuração raramente precisa ser modificado por servidores de correio padrão.

O arquivo de configuração principal do sendmail pode ser construido a partir dos macros m4(1) que define as características e comportamento do sendmail. Por favor veja o /usr/src/contrib/sendmail/cf/README para maiores detalhes.

Quando mudanças neste arquivo são feitas, o sendmail precisa ser reiniciado para que as mudanças tenham efeito.

20.3.5. /etc/mail/virtusertable

O virtusertable mapeia os endereços de correio para domínios virtuais e caixas de mensagens para caixas de mensagens reais. Estas caixas de mensagens podem ser locais, remotas, apelidos definidos no /etc/mail/aliases ou arquivos.

Exemplo 20-3. Exemplo de mapeamento de domínio virtual de mensagens

root@exemplo.com       root
postmaster@exemplo.com    postmaster@noc.exemplo.net
@exemplo.com            joe

No exemplo acima, nós temos um mapeamento para o domínio exemplo.com. O arquivos é processado de cima pra baixo, ordenado na busca da primeira constatação da entrada. O primeiro ítem mapeia root@exemplo.com para a caixa de mensagens local do usuário root. A próxima entrada mapeia postmaster@exemplo.com para a caixa de mensagens do usuário postmaster do host noc.exemplo.net. Finalmente, se nada de exemplo.com for encontrado, ele irá usar o último mapeamento, que ao ser enviada uma mensagem para qualquer pessoa para o domínio exemplo.com ela será entregue a um determinado usuário. Neste caso ele irá fazer o mapeamento para a caixa de mensagens local do usuário joe.

Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.