3.4. Configuração do servidor de E-MAIL

3.4.1. O que é E-MAIL ?
3.4.2. Instalação do serviço de E-MAIL
3.4.3. Arquivos de configuração
3.4.4. Modos de execução do sendmail
3.4.5. Ferramentas e utilitários
Sendmail.org


3.4.1. O que é E-MAIL ?

A sigla E-MAIL significa Eletronic Mail, ou seja, correio eletrônico.
Um usuário de um sistema Unix-like possui um endereço eletrônico na forma:

      <usuário> @ <máquina ou domínio>
O símbolo @ é chamado at em inglês, o que significa em. Por exemplo, joao@linuxsupport.com.br é o endereço eletrônico do usuário joao no domínio linuxsupport.com.br.

Todo usuário local possui uma caixa postal onde os seus e-mails de chegada são armazenados. O e-mail do usuário <usuário> é processado pelo procmail e normalmente é armazenado no arquivo /var/spool/mail/<username>. O comportamento do procmail pode ser alterado através do arquivo .procmailrc residente no diretório do home do <usuário> (~<usuário>).

O sistema de e-mail é formado por dois componentes:

  • MUA - Mail User Agent
    MUA MUA's são quaisquer dos programas utilizados pelo usuário para ler, responder, compor e dispor e-mails. Hoje existem centenas de aplicativos que são ou incluem o MUA. Alguns exemplos são: mail, pine, mush, elm, xfmail, coolmail, Netscape Messenger, Applixware, StarOffice/OpenOffice, kmail, mutt, ...
  • MTA - Mail Transport Agent
    MTA   São os programas que responsáveis de entregar mensagens a vários usuários e redirecionar mensagens entre os computadores, os mais utilizados são o smail e o sendmail. Há ainda programas que aceitam conexões dos MUA para receber e-mail, os poppers.
Protocolos de e-mail

Existem dois protocolos básicos: o de envio e o de recebimento ou leitura de e-mail.

  • SMTP - Simple Mail Transfer Protocol : este é o protocolo de envio de e-mail. O roteamento de mensagens é tratado pelas máquinas Mail Exchange (definidas nos registros MX do DNS).

  • POP - Post Office Protocol : este é o protocolo de leitura de e-mail, hoje na sua versão POP3. O protocolo POP é basicamente configurado no MUA.
Um e-mail no diretório de spool

Uma mensagem eletrônica é, normalmente, transferida em formato texto, mesmo contendo arquivos binários anexos. Esta mensagem é armazenada no arquivo de spool e é composta de um cabeçalho e do corpo. O cabeçalho contém informações como a origem, destino, assunto, data e arquivos anexos. O corpo contém o texto da mensagem e os arquivos anexos.

Exemplo:

             /  From hmarx@linuxsupport.com.br Sat Oct 25 19:45:11 2008
             |  Return-Path: <hmarx@linuxsupport.com.br>
             |  Received: (from <hmarx@atlas.linuxsupport.com.br>)
             |       by atlas.linuxsupport.com.br (8.9.3/8.9.3) id OAA14834
  Cabeçalho  |       for webmaster; Sat, 25 Oct 2008 19:45:23 -0200
             |  Date: Sat, 25, Oct 2008 19:45:23 -0200
             |  From: Helio Marques<hmarx@linuxsupport.com.br>
             |  Message-Id: <200810251945.OAA14834@atlas.linuxsupport.com.br>
             |  To: webmaster@linuxsupport.com.br
             \  Subject: Um simples e-mail

             /  Olá Info !
             |
             |     Como vão os projetos ?
  Corpo      |
             |  Abraços,
             |
             |  Helio
             \
Note que entre o cabeçalho e o corpo há uma linha em branco.

Protocolo do sendmail

Quando um usuário em uma máquina (local) quer enviar um e-mail para um usuário em outra máquina (remota), é estabelecida uma conexão SMTP. O protocolo SMTP é muito simples. A máquina local se identifica e informa o remetente do e-mail, o destinatário do e-mail e o conteúdo (corpo) da mensagem. A máquina remota pode realizar verificações aceitando ou não as diversas informações.

A figura abaixo mostra a conversa (protocolo) smtp de uma máquina local e outra remota:

  
Protocolo SMTP


3.4.2. Instalação do serviço de E-MAIL
A distribuição SuSE Linux disponibiliza vários programas que manipulam e-mails, tanto MTA quanto MUA, como já foi dito anteriormente. A escolha de um programa depende muito da preferência de cada um. Nós indicamos a instalação do sendmail como o componente MTA do seu sistema de e-mail, o sendmail é hoje o programa mais difundido na Internet para processamento de e-mail. Estima-se que seja o responsável pelo encaminhamento de bilhões de mensagens diariamente e que rode em 70% dos servidores de mail na Internet.
O modo mais fácil de instalar os pacotes é através da ferramenta YaST, a maioria deles se encontra na série n.

3.4.3. Arquivos de configuração
O sendmail é o programa mais usado como MTA atualmente na Internet, por isso é de nosso interesse abordar aqui a sua configuração. O arquivo central de configuração é o /etc/sendmail.cf. Podem ser configuradas informações como os nomes da máquina local (nome e/ou domínio), regras de tratamento dos e-mails, segurança e limitações. Este arquivo utiliza diversos arquivos localizados em /etc/mail.

No MUA, o usuário irá informar sua identidade (nome, e e-mails) e os servidores para envio e recepção de mensagens. Ele pode decidir se as mensagens irão ou não ser removidas do servidor após serem recebidas.

Um usuário local pode fazer um re-encaminhamento automático de suas mensagens criando o arquivo .forward em seu diretório pessoal contendo:
  • <usuário2>
    Apenas redireciona para o usuário requerido
  • \<usuário>,<usuário2>
    Redireciona para o usuário2 mantendo uma cópia para o usuário
  • \<usuário>, "| <programa>"
    Mantém uma cópia para o usuário e passa a mensagem como entrada para o <programa>.
Trabalhando com Aliases

Aliases convertem o nome de um recipiente em outro, desta maneira você pode criar apelidos para um usuário no arquivo /etc/aliases. Após modificá-lo, execute o programa newaliases, ele irá reconstruir a base de dados do Aliases no arquivo /etc/aliases.db.

O arquivo /etc/aliases é interpretado da seguinte maneira:
# - comentários
Linhas em branco são ignoradas
Realiza verificação recursiva de nomes
Pode possuir cinco tipos de Aliases
Para habilitar o funcionamento do Aliases, o arquivo /etc/sendmail.cf deverá conter as seguintes linhas:
OA/etc/aliases
O Aliases=/etc/aliases
Para criar Aliases de usuários que pertencem a domínios virtuais, você terá que definí-los no arquivo /etc/mail/virtusertable, e depois executar o script SuSEconig.

Fila de Mensagens

O sendmail ao receber uma mensagem, a coloca em uma fila, para ser processada posteriormente. A configuração da fila de mensagens é feita no arquivo /etc/sendmail.cf, nas seguintes linhas:

O QueueDirectory=/var/spool/mqueue Define a localização do diretório onde as mensagens são enfileiradas e processadas
O DeliveryMode=[background][defer][queueonly] Esta opção define a forma como as mensagens da fila serão processadas: em background, continuamente ou apenas enfileiradas para processamento posterior.
O QueueLA=8 Este valor define a carga da máquina a partir da qual as mensagens não mais são entregues e são apenas enfileiradas para processamento posterior.


As mensagens enfileiradas no QueueDirectory, são divididas em dois arquivos:

Arquivo qf: Representa o arquivo de controle (cabeçalhos - headers)

Arquivo df: Representa o arquivo de dados (corpo - body)


O sendmail também gera outros arquivos de controle, tais como:


Arquivo tf: O sendmail ao processar uma mensagem, frequentemente precisa reescrever o conteúdo do arquivo qf. Para impedir que o arquivo qf original seja danificado, todas as modificações são feitas em um arquivo iniciado por tf. Quando as modificações são concluídas, o arquivo qf original é substituído pelo arquivo temporário (tf).

Arquivo xf: Este é o arquivo de transcrição. Uma mensagem pode ser destinada a vários destinatários, requerendo diferentes agentes de entrega. Durante o processo de entrega das mensagens, mensagens de erro (como User Unknown e Permission Denied) podem ser geradas pelo sendmail. Estas mensagens são salvas temporariamente em um arquivo, iniciado pelas letras xf. Após todos os agentes de entrega terem sido invocados, as mensagens de erro são passadas ao remetente e o arquivo temporário é apagado.


Configurando os relays domains

O arquivo /etc/mail/relay-domains deve conter todos os domínios externos para relay, o comando de configuração é o FR-o /etc/mail/relay-domains %[^\#] definido no arquivo /etc/sendmail.cf. Se a FEATURE(`relay_hosts_only') for usado, somente nomes completos (<máquina.domínio>) serão aceitos como relay.

Configurando o arquivo /etc/sendmail.cw

O arquivo /etc/sendmail.cw deve conter os hosts (domínios) locais aceitos pelo sendmail. Por exemplo, se o seu servidor SMTP recebe e-mails do domínio local (linuxsupport.br) e do domínio real (linuxsupport.com.br), estes dois domínios devem estar no arquivo /etc/sendmail.cw. Coloque um domínio em cada linha.

Configurando o arquivo /etc/sendmail.cf

Algumas considerações sobre o sendmail.cf
  • Ele é lido toda vez que o programa sendmail é inicializado
  • Contém informações necessárias á execução do programa sendmail:
    • Localização de arquivos importantes e suas permissões de acesso default
    • Regras
    • Conjunto de regras para reescrita de endereços
    • Comandos de configuração
  • Linhas iniciadas por "#" são consideradas comentários e são ignoradas
  • Linhas iniciadas por tabs ou brancos são consideradas como continuação da linha anterior
Comandos de configuração do sendmail.cf

Comando
Descrição
V
Versão do arquivo de configuração (V8)
M
Definição de um MTA
D
Definição de macro
R
Definição de regra de reescrita
S
Definição do início de um conjunto de regras de reescrita
C
Definição de uma macro de classe
F
Definição de uma macro de classe a partir de um arquivo ou pipe
O
Definição de uma opção
H
Definição de um cabeçalho
P
Definição de prioridades de entrega
T
Definição de usuários confiáveis
K
Declaração de um banco de dados com chaves (V8)
E
Definição de uma variável de ambiente


Regras - Rules

As regras no arquivo /etc/sendmail.cf são utilizadas para:
  • Modificar endereços eletrônicos
  • Detectar erros de endereçamento
  • Selecionar agentes para entrega de mensagens
Conjunto de regras - Rule Sets

Várias regras podem ser agrupadas em conjuntos de regras (rule sets). Um conjunto de regras é declarado com o comando S, na primeira posição de uma linha no arquivo /etc/sendmail.cf.

Objetivo das regras

Rule Set
Objetivo
0
Definição do agente de entrega de e-mails
1
Definição do endereço do remetente
2
Definição do endereço do destinatário
3
Pré-processamento de todos os endereços
4
Pós-processamento de todos os endereços
5
Reescrita de usuários locais sem aliases


Fluxo de processamento das regras

Fluxo de processamento das Regras


Algumas varíaveis importantes no arquivo /etc/rc.config:

Os valores pré-definidos pela SuSE são bastante razoáveis, isso quer dizer que ao instalar o sendmail com o kit da SuSE o sendmail estará praticamente pronto para usar. A configuração do SuSE Linux através do YaST já modifica alguns dos parâmetros principais nos arquivos de configuração. Você pode também alterar as variáveis definidas no /etc/rc.config ou em /etc/rc.config.d/sendmail.rc.config e executar o SuSEconfig.

Variável
Valor
Significado
SENDMAIL_TYPE yes O SuSEconfig gerará o sendmail.cf
SENDMAIL_LOCALHOST localhost Nomes da máquina local
FROM_HEADER <domínio> Domínio default para FROM
SENDMAIL_SMARTHOST <máquina do provedor> Máquina opcional que transporta seus e-mails
SENDMAIL_NOCANONIFY no Transforma os e-mails na forma canônica (requer pesquisas no DNS)
SENDMAIL_ARGS -bd -q30m -om Opções de execução do sendmail
SENDMAIL_EXPENSIVE no Só dispara o sendmail manualmente


Configurações mais complexas

Caso queira configurar o sendmail manualmente, você deve fazer SENDMAIL_TYPE="no", criar o sendmail.cf (use o /etc/mail/linux.mc como template) e executar depois o SuSEconfig.

Exemplo:
    alpha:~  # cp /etc/mail/linux.mc mylinux.mc
    alpha:~  # _
Edite o mylinux.mc para personalizar a sua configuração. Depois executar o m4 para criar o sendmail.cf.

Exemplo:
    alpha:~  # m4 mylinux.mc > /etc/sendmail.cf
    alpha:~  # _
3.4.4. Modos de execução do sendmail

Argumentos da linha de comando

Flag
Descrição
-b Define o modo de operação
-v Execução em modo verboso
-d Executar em modo debug


Modos de operação

Flag
Descrição
-bd Executa como um daemon
-bD Executa como um daemon, mas não realiza fork
-bi Inicializa o banco de dados de aliases
-bH Remove informações persistentes sobre condições de hosts
-bh Imprime informações persistentes sobre condições de hosts
-bm Envia um e-mail
-bp Imprime a fila de mensagens
-bs Executa o protocolo SMTP com a entrada e saída pradrão
-bt Executa em modo de teste, apenas para resolução de endereços
-bv Executa somente para verificação (sintaxe do endereço), não aceita nem entrega de mensagens


Outros nomes para o sendmail

Nome
Modo de operação
hoststat -bh
mailq -bp
newaliases -bi
purgestat -bH
smtpd -bd


3.4.5. Ferramentas e utilitários
Exitem diversas ferramentas e utilitários de e-mail disponíveis. Elas podem ser um MUA, um MTA, ou ter a funcionalidade de ambos. Vamos citar algumas:

kmail Para ler e compor e-mails, é muito amigável e fácil de usar, é um aplicativo gráfico KDE
biff Notifica mails novos que chegaram
elm Para ler e compor e-mails
from Lista de remetentes de e-mails na sua caixa de entrada
mail [usuario] Ler e-mails. Se o [usuario] é digitado na linha de comando, ele vai ser usado na composição de mail. Depois de terminado, o mail será mandado para o [usuario]
mailtool Programa de mail OpenWindows
newmail Notifica novos e-mails que chegaram (parte do pacote elm)
pine Lê e compõe e-mails


Copyright © 2001-2008 HMarx - webmaster@linuxsupport.com.br