você está aqui: Home  → Arquivo de Mensagens

Sendmail - User Database

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 18 de Junho de 1999

O sendmail é um programa de entrega de mensagens que oferece inúmeras opções de configuração. Uma delas é a facilidade de se realizar alterações no campo de endereço das mensagens. Os endereços dos recipientes ou destinatários das mensagens podem ser alterados de acordo com especificações fornecidas pelo administrador de redes. Estas definições são armazenadas em um banco de dados externo que é consultado pelo sendmail sempre que processar uma mensagem.

Normalmente, os endereços são consultados no arquivo /etc/aliases. Se não forem encontrados lá, é então consultado o arquivo chamado .forward, no diretório pessoal do usuário. Se o banco de dados dos usuários (userdb) estiver habilitado, as definições deste banco de dados serão consultadas após a consulta ao arquivo /etc/aliases e antes da consulta ao arquivo .forward.

O userdb é compilado automaticamente quando o sendmail é compilado com suporte ao NEWDB ou HESIOD. Para verificar se o seu programa sendmail provê este suporte, emitir o comando:

  # sendmail -d0.1 -bt < /dev/null
  Version 8.9.3
   Compiled with: LOG MATCHGECOS MIME7TO8 MIME8TO7 NAMED_BIND NETINET
                  NETUNIX NEWDB QUEUE SCANF SMTP USERDB XDEBUG
                                                 ^^

Como podemos ver, a versão do sendmail é 8.9.3 e o suporte ao USERDB está habilitado.

Precisamos agora sinalizar ao sendmail onde se encontra este banco de dados. Precisamos incluir no arquivo /etc/sendmail.cf a definição:

  O UserDatabaseSpec=/etc/userdb.db

Caso o arquivo /etc/sendmail.cf seja criado a partir do m4, incluir no arquivo mc correspondente a seguinte linha:

  define(`confUSERDB_SPEC',/etc/userdb.db)

O passo seguinte é criar o banco de dados de usuários. Isto é feito usando-se o comando makemap:

  # makemap btree /etc/userdb.db < /etc/userdb

O banco de dados, ou mapa, será criado tomando por base o arquivo no formato texto que se encontra em /etc/userdb.

O arquivo /etc/userdb consiste de entradas contendo dois valores: uma chave e seu valor correspondente. A chave é a identificação de um usuário (username), seguido de ":" e um de dois valores possíveis: maildrop ou mailname. A palavra chave utilizada determina a natureza do campo seguinte.

Por exemplo:

  	root:maildrop	queiroz@ccuec.unicamp.br,joao@unicamp.br

No exemplo acima, mensagens endereçadas para o usuário root são direcionadas para os usuários <queiroz (a) ccuec unicamp br> e <joao (a) unicamp br>. Os endereços para onde as mensagens são redirecionadas devem ser separados por vírgulas. É também possível incluir-se um endereço por linha, como abaixo:

  	root:maildrop		queiroz@ccuec.unicamp.br
  	root:maildrop		joao@unicamp.br

Neste segundo caso, o comando makemap deve ser invocado com a opção "-i".

A outra possibilidade é a utilização da palavra chave mailname:

  	queiroz:mailname	queiroz@dicas-l.com.br
  	joao:mailname		joao@acme.com.br
  	maria:mailname		maria@netroad.com

Os valores acima fazem com que mensagens enviadas pelo usuário queiroz saiam identificadas como se tivessem sido enviadas por <queiroz (a) dicas-l com br>. As mensagens enviadas pelo joao sairão como se tivessem sido enviadas por <joao (a) acme com br>.

Esta configuração é bastante útil para provedores de acesso, que possuem vários clientes, cada um dos quais com um domínio diferente. Desta forma cada um dos clientes poderá enviar mensagens e sua identificação corresponderá ao domínio de sua empresa.

Veja o trecho do cabeçalho de uma mensagem:

  From queiroz  Thu Jun  3 08:01:37 1999
  Return-Path: <queiroz@dicas-l.com.br>
  Received: (from queiroz@localhost)
          by galaxy.ccuec.unicamp.br (8.9.3/8.9.1) id IAA05608
          for queiroz; Thu, 3 Jun 1999 08:00:21 -0300

Como se pode ver, o valor do caminhao de retorno é <queiroz (a) dicas-l com br>.

O Unix limita o nome dos usuários em oito caracteres. Desta forma não é possível ser muito criativo na forma como os nomes dos usuários são definidos. A facilidade userdb nos permite também um maior grau de flexibilidade neste aspecto. Veja o exemplo:

  	queiroz:mailname	 	Rubens.Queiroz
  	Rubens.Queiroz:maildrop 	queiroz

Não esquecer que neste caso, onde o recipiente das mensagens é alterado, as entradas mailname e maildrop devem ocorrer em pares. Isto para que quando alguém responder a <Rubens Queiroz (a) ccuec unicamp br> a mensagem possa ser entregue corretamente ao usuário Unix chamado queiroz.



 

 

Veja a relação completa dos artigos de Rubens Queiroz de Almeida

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script