20.7. SMTP com UUCP

A configuração do sendmail que o FreeBSD traz é voltada para locais que estejam conectados diretamente à internet. Locais que desejam trocar mensagens via UUCP devem instalar outro arquivo de configuração do sendmail.

Ajustar o /etc/mail/sendmail.cf manualmente é um tópico avançado. O sendmail na versão 8 gera os arquivos de configuração pelo m4(1) através de pré-processamento, onde a configuração atual ocorre em um nível mais alto de abstração. Os arquivos de configuração do m4(1) podem ser encontradas sob /usr/src/usr.sbin/sendmail/cf.

Se você não tiver instalado seu sistema com todos os fontes, a configuração do sendmail vai estar quebrado em um arquivo de fonte separado na distribuição. Assumindo que você tem o código fonte do FreeBSD montando em CDROM, faça:

# cd /cdrom/src
# cat scontrib.?? | tar xzf - -C /usr/src/contrib/sendmail

Isto irá descompactar somente alguns cem kilobytes. O arquivo README no diretório cf pode servir como uma introdução básica a configuração do m4.

A melhor maneira de suportar a entrega UUCP é usar a característica mailertable. Isto cria uma base de dados que o sendmail pode usar para tomar decisões de roteamento.

Primeiro, você deve criar seu arquivo .mc O diretório /usr/src/usr.sbin/sendmail/cf/cf contém alguns exemplos. Assumindo que você nomeou seu arquivo como foo.mc, tudo que você precisa fazer é converte-lo em um sendmail.cf válido:

# cd /usr/src/usr.sbin/sendmail/cf/cf
# make foo.cf
# cp foo.cf /etc/mail/sendmail.cf

Um típico arquivo .mc pode ser dessa forma:

VERSIONID(`O número de sua versão') OSTYPE(bsd4.4)

FEATURE(accept_unresolvable_domains)
FEATURE(nocanonify)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')

define(`UUCP_RELAY', seu.uucp.relay)
define(`UUCP_MAX_SIZE', 200000)
define(`confDONT_PROBE_INTERFACES')

MAILER(local)
MAILER(smtp)
MAILER(uucp)

Cw    seu.apelido.host.nome
Cw    seunomeuucp.UUCP

As linhas que contém as características accept_unresolvable_domains, nocanonify, e confDONT_PROBE_INTERFACES impedirão todo o uso do DNS durante a entrega de mensagens. A opção UUCP_RELAY é necessária suportar entrega UUCP. Coloque simplesmente um hostname da internet lá que esteja apto a gerenciar. Endereços do pseudo-domínio do UUCP; muito provável que, você irá entrar lá no relay de mensagens do seu provedor de serviços internet.

Uma vez que você tenha isto, você precisa do arquivo /etc/mail/mailertable. Se você tem somente um link para fora que estará sendo usada para todos os seu emails, a seguinte linha será suficiente:

#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
.                uucp-dom:seu.uucp.relay

Um exemplo mais complexo pode ser como este:

#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
#
horus.interface-business.de   uucp-dom:horus
.interface-business.de  uucp-dom:if-bus
interface-business.de    uucp-dom:if-bus
.heep.sax.de          smtp8:%1
horus.UUCP          uucp-dom:horus
if-bus.UUCP        uucp-dom:if-bus
.                uucp-dom:

As primeiras três linhas gerenciam especialmente casos onde o domínio endereçado de mensagens não pode ser enviado para fora pela rota padrão, mas preferivelmente ser entregue por algum ``atalho'' vizinho UUCP. As próximas linhas gerencia para o domínio ethernet local que pode ser entregue usando SMTP. Finalmente, os vizinhos UUCP são mencionados na notação do pseudo-domínio .UUCP, para permitir um uucp-vizinho de !recipiente sobreescreva as regras padrões. A última linha é sempre somente um ponto único, colocando tudo mais, com a entrega UUCP a um vizinho do UUCP que sirva como gateway de correio universal para o mundo. Todos os nomes de estação atrás uucp-dom: palavra chave deve ser um vizinho UUCP válido como você pode verificar usando o comando uuname.

Como lembrete, este arquivo necessita ser convertido em uma base de dados DBM antes de ser usado. A linha de comando para realizar isto é colocada como comentário no alto do mailertable. Você sempre tem que executar esse comando cada vez que você modificar seu mailertable.

Sugestão final: se você estiver incerto de algum roteamento particular que o correio deveria funcionar, lembre da opçao -bt do sendmail. Isto inicia o sendmail em modo de teste de endereços; simplesmente entre com 3,0, seguido pelo endereço que você deseja testar para roteamento de correio. A última linha fala o agente de correio interno usado, o host de destino que esse agente estará chamando, e o (possivelmente traduzindo) endereço. Saia deste modo digitando Ctrl+D.

% sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 foo@exemplo.com
canonify       input: foo @ exemplo .  com
...
parse       returns: $# uucp-dom $@ seu.relay.uucp $: foo < @ exemplo .  com . >
> ^D

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