Administração de Redes GNU/Linux/Correio Eletrônico

Este documento trata um dos serviços mais importantes a nível de usuário, o serviço de mensagens eletrônicas.

<img src="%ATTACHURLPATH%/pag_337a.jpg" alt="pag_337a.jpg" width="459" height="253" />

Obs.: o conteúdo deste capítulo está sendo migrado de: http://wiki.marceloakira.com/bin/view/GrupoLinux/ArtigoServidorDeMensagens, http://wiki.marceloakira.com/bin/view/GrupoLinux/ArtigoPostfix e http://wiki.marceloakira.com/bin/view/GrupoLinux/SlidesPostfix

Servidor de Mensagens editar

Um servidor de mensagens é responsável pela recepção e envio de mensagens. Dentro deste processo há vários mecanismos utilizados pelo servidor antes da mensagem chegar até o remetente. Atualmente na Internet um dos grandes responsáveis por seu imenso tráfego, sem dúvida, é o e-mail.

O Simple Mail Transport Protocol (SMTP) é o protocolo de transporte de mensagens utilizado em redes TCP/IP. Um servidor de mensagens oferece outros serviços além de transporte, este deve prover serviços como fornecer apelidos para usuários e fazer roteamento de mensagens.

Como principais Servidores de Mensagens para Linux temos o Sendmail (http://www.sendmail.org), o Qmail (http://www.qmail.org) e o Postfix (www.postfix.org). Os dois últimos são servidores SMTP que surgiram como possíveis substitutos ao Sendmail, pelo fato do sendmail apresentar algumas deficiências: dificuldade de administrar (arquivo de /etc/sendmail.cf complexo) e maior risco de segurança, pois seus processos utilizam o usuário root como dono (caso o sendmail seja invadido, o invasor terá privilégios de super-usuário). Porém, o sendmail é muito tradicional e é disponível pela grande maioria de distribuições do Linux. Futuramente, é possível tratarmos outros servidores SMTP.

Instalando o Sendmail editar

O Sendmail pode ser instalado através de arquivos binários - pacotes RPM - ou através do seu próprio código fonte.

Instalação através de arquivos binários editar

Neste modelo de instalação estaremos utilizando a ferramenta RPM. Para verificar se o sendmail já está instalado, execute:

%PASSO%

#rpm -q sendmail

Existem 3 pacotes RPM pertinentes ao sendmail: o sendmail, que possui os arquivos essenciais ao sendmail, incluindo o próprio servidor, arquivos de controle e administração; sendmail-cf, que possui os arquivos necessários para gerar e atualizar o arquivo de configuração /etc/sendmail.cf;e sendmail-doc, que possui os documentos do sendmail, sendo que alguns estão no formato postscript. Estes podem ser encontrados no endereço ftp.conectiva.com.br através de ftp. Para versões do Conectiva Linux inferiores à 7.0, estes pacotes são encontrados no cdrom número 1 do Conectiva Linux, a partir da versão 7.0 este pacotes estão no cdrom número 2. Para instalar os pacotes execute:

%PASSO%

#rpm -ivh sendmail*
Preparing...                ########################################### [100%]
1:sendmail               ########################################### [ 33%]
2:sendmail-cf            ########################################### [ 66%]
3:sendmail-doc           ########################################### [100%]

Instalando o sendmail a partir de seu código fonte editar

O código fonte do sendmail pode ser encontrado no endereço ftp://ftp.sendmail.org/pub/sendmail/sendmail.8.12.3.tar.gz.

Para compilar e instalar o sendmail, leia o arquivo INSTALL que vem junto com o arquivo sendmail.8.12.3.tar.gz. Note que a versão mais recente até a data em que foi escrito este documento era a versão 8.12.3. Veja também a documentação do site http://www.sendmail.org.

Agentes de mensagens editar

No processo de troca de mensagens existem basicamente três agentes de mensagens: MTA - Agente de Transporte de E-mail [Mail Transport Agent], MUA -Agente de E-mail do Usuário [Mail User Agent] e MDA - Agente de Entrega de mensagens [Mail Delivery Agent]. Veja mais detalhadamente:

  • MTA - Sua finalidade é transportar um e-mail de um MTA até outro MTA. Como exemplo de MTA temos: sendmail, postfix, qmail, Lotus Notes, MS Exchange Server, etc.
  • MUA - O Agente de e-mail do usuário é um programa utilizado pelo usuário e tem as finalidades básicas de compor, ler e enviar e-mail. Exemplo de MUA temos: MS Outlook, Lotus Notes Messenger, Netscape Messenger, elm, mailx (ou mail), mutt, pine, Eudora, Pegasus, etc.
  • MDA - Este agente tem como finalidade entregar localmente no servidor a mensagem para seu dono, ou seja, quando o e-mail chega no MTA(Servidor de e-mail), este agente irá armazenar o e-mail na caixa postal do destinatário. O MDA ainda pode fazer mais: filtrar e-mails indesejáveis, responder e-mails automaticamente (por exemplo, estou de férias...), encaminhar um e-mail automaticamente para outro, etc. Como exemplos de MDA, temos: procmail, maildrop, mailagent e sensible-mda.

Nota: Alguns servidores de e-mail, tal como o Lotus Notes e MS Exchange Server, desconsideram a separação de MTA e MDA. Estes servidores trabalham como um todo, não separando a funcionalidade de MTA e MDA.

Um processo típico de envio de e-mail pode ser resumido da seguinte maneira:

<img src="%ATTACHURLPATH%/pag_339a.jpg" alt="pag_339a.jpg" width="571" height="215" />
Fig. 1 - Representação dos agentes no processo de entrega de mensagens.


Agora veremos o que acontece em cada etapa da transmissão do e-mail:

  • (1)O usuário compõe sua mensagem em seu MUA (por exemplo: netscape messenger) e envia o e-mail para o MTA.
  • (2)O MTA reencaminha o e-mail para o outro MTA-o termo utilizado para reencaminhar e-mail é chamado relay.
  • (3)O MTA recebe o e-mail do outro MTA através do protocolo SMTP.
  • (4)O MDA armazena o e-mail na caixa postal do destinatário.
  • (5)O destinatário baixa seus e-mails para seu computador local interagindo com o servidor POP3, lendo seus e-mails no seu MUA( por exemplo: MS Outlook)

Nota: No caso real cada MTA representaria um servidor de e-mail de um domínio específico.

Exemplo de Troca de mensagens editar

Vejamos um exemplo de envio de e-mail: Imaginemos que o usuário fulano que está na máquina lab10 queira mandar um e-mail para o usuário beltrano que está na máquina lab20. O Fulano escreve a mensagem em seu cliente de e-mail e envia a mensagem através do Agente de Mensagens do Usuário - MUA - mail. O comando mail é encontrado em quase todas as distribuições linux e Unix`s, é um dos mais simples MUAs, podendo enviar, ler e-mails, dentre outras funcionalidades. Para saber mais sobre o mail, consulte as páginas de manual.

{| cellpadding="5" cellspacing="0" border="1"
|-
|#echo "teste de e-mail" ||mail -s 'teste' beltrano@lab20.sistemasabertos.com.br
|}

Nota: neste exemplo estamos usando o MUA de linha de comando, chamado mail (também conhecido como mailx).

A mensagem será entregue para a máquina MTA - Agente de Transporte de e-mail - lab20.sistemasabertos.com.br. A função do MTA será receber esta mensagem e entregar a mesma na caixa postal correta do usuário beltrano. O processo de entrega pode ser definido da seguinte maneira: o MTA da máquina de fulano, a máquina lab10, conecta à porta 25 da máquina lab20 usando o protocolo SMTP (Simple Mail Transfer Protocol), depois de conectado a máquina de fulano entrega a mensagem a seu destinatário. O MTA da máquina lab20 receberá a mensagem e deixará a mensagem na caixa postal de beltrano, que no caso da distribuição Conectiva Linux será o arquivo /var/spool/mail/beltrano.

O beltrano da máquina lab20, pode ler o e-mail enviado bastando executar mail e depois digitar o número da mensagem da qual ele quer ler:

%PASSO%

# mail

Mail version 8.1 6/6/93.  Type ? for help.
"/var/spool/mail/root": 1 messages 1 unread
>U  1 fulano@lab10  Sat Dec 30 15:20   15/394  teste
>1

Se o usuário quiser verificar seus e-mails remotamente, ele pode utilizar o protocolo POP - Post Office Protocol ou o IMAP - Internet Message Access Protocol - para receber suas mensagens. Veremos como configurar o servidor POP ainda neste capítulo.

No caso particular da Internet, cada domínio tem um servidor de e-mail onde os usuários deste domínio baixam seus e-mails através de máquinas clientes. Também vimos que este processo pode ser feito com o uso do protocolo POP. O último exemplo pode ser entendido de forma genérica, porém o exemplo que se segue trata uma questão mais real, vejamos:

<img src="%ATTACHURLPATH%/pag_341a.jpg" alt="pag_341a.jpg" width="586" height="285" />
Fig. 2 - Procedimento de envio de mensagem.


Você é o usuário fulano@sistemasabertos.com.br e quer mandar e-mail para a conta beltrano@dominio.com.br. Perguntamos: Como que a máquina do fulano encontrará o servidor de e-mail do domínio dominio.com.br? Primeiramente, o MTA do remetente procurará pelo servidor de DNS do domínio dominio.com.br, no servidor de DNS do domínio dominio.com.br existe a entrada MX - Mail exchanger - que define o servidor de e-mail deste domínio, ou seja, é através desta entrada MX que descobrimos o servidor de e-mail de um domínio, depois de encontrado o servidor de e-mail, o próximo passo é conectar à porta 25 deste servidor e entregar a mensagem através do protocolo SMTP. O usuário beltrano poderá ler seus e-mails em qualquer máquina conectando ao servidor de e-mail através do protocolo POP ou IMAP. Neste caso o servidor de e-mail será também o servidor POP, o que é bastante comum.

Nota: Para verificar problemas de comunicação de e-mail é aconselhável utilizar o mail com a opção -v Esta opção permite ver todo os passos na comunicação SMTP entre o mailx e o servidor SMTP, sendo muito útil para verificar falhas na comunicação de envio de e-mail.


O Sendmail editar

O Sendmail é um poderoso Servidor de Mensagens que tem todos os requisitos como: atribuir apelidos e fazer roteamento [relay] de mensagens. Entre outras tarefas, ele encaminha a mensagem de todos os diferentes programas de mensagem do usuário para os diversos programas de distribuição de mensagem, enquanto assegura que a mensagem esteja corretamente formatada para a distribuição.

O daemon Sendmail é um Mail Transport Agent (MTA). Ele logicamente é usado para receber e enviar correio eletrônico. Ele não é usado para compor e ler mensagem eletrônica - os aplicativos MUAs são os aplicativos que tem a amigabilidade para lidar com tais tarefas.

Como o Sendmail funciona editar

O daemon Sendmail está continuamente em execução, ele monitora a porta 25 - Os MTAs se comunicam através desta porta, a porta SMTP. Quando o sendmail recebe uma mensagem de correio, ele determina se o destinatário é local com base nos seus arquivos de configuração. Destinatários que não sejam locais são reencaminhados ou rejeitados, também com base no arquivo de configuração. Uma mensagem para um destinatário local é colocada no arquivo de correio do destinatário. Endereços locais podem incluir usuários regulares, nomes alternativos entre outros.

O sendmail também é chamado pelos aplicativos que lêem correio eletrônico. Eles enviarão seus dados para o sendmail localmente. O sendmail, então, passa pelo mesmo processo de entrega.

<img src="%ATTACHURLPATH%/pag_343a.jpg" alt="pag_343a.jpg" width="577" height="266" />
Fig. 3 - Representação do funcionamento do Sendmail.


O Protocolo SMTP editar

Este é o protocolo responsável pelo transporte de e-mail de uma máquina até outra máquina em uma rede. Aqui veremos passo a passo como se estabelece uma conexão ao servidor de e-mail.

Segue abaixo a sequência de passos executados para a entrega de mensagens:

%PASSO% Utilizaremos do comando telnet para acessarmos a porta dos MTAs, a porta 25, veja o exemplo:

#telnet lab20.sistemasabertos.com.br 25
Trying 10.1.0.120...
Connected to lab20.sistemasabertos.com.br.
Escape character is '^]'.
220 lab20.sistemasabertos.com.br ESMTP Sendmail 8.9.3/8.9.3; Tue, 18 Sep 2001 20:12:49
-0300

<img src="%ATTACHURLPATH%/pag_344a.jpg" alt="pag_344a.jpg" width="491" height="237" />
Fig. 4 - Comunicação através do protocolo SMTP.


Observe que estamos considerando que a máquina lab20.sistemasabertos.com.br já está configurada como servidor de e-mail.

A saída do comando acima nos mostra que o serviço sendmail está respondendo a solicitações nesta porta. - A máquina que executou telnet deve, então, começar a comunicação enviando o comando HELO, logo execute:

%PASSO%

HELO lab20.sistemasabertos.com.br
O MTA normalmente responderá com uma mensagem cortês , como por exemplo: please to meet you [prazer em conhecê-lo]. Em seguida, o MUA deverá se identificar fornecendo o remetente da mensagem: 
MAIL FROM: fulano@dominio.com.br
Se o MTA aceitar o e-mail de remetente, o mesmo responderá com a mensagem 250 fulano@dominio.com.br.. Recipient ok. Agora você deve informar o destinatário: 
RCPT TO: beltrano@lab20.sistemasabertos.com.br

Se o servidor aceitar o endereço de destinatário especificado e retornar a mensagem 250 beltrano@sistemasabertos.com.br... Recipient ok. Agora é hora de escrever o e-mail, para isto digite: 
DATA
354 Enter mail, end with "." on a line by itself

teste de envio de e-mail
Acho que deu certo!!!!!!!

fulano
.
Cc:

Tudo que for digitado abaixo da entrada "DATA" será o corpo da mensagem, para terminar pressione ENTER digite "."(ponto) e depois ENTER novamente. Caso queira entregar uma cópia do e-mail para outro usuário, no campo Cc: digite o e-mail deste usuário.

Nota: Caso você queira saber mais sobre o protocolo SMTP, leia a seção 5 da RFC 1123, http://www.sendmail.org/rfc/1123.html#5.

Configuração do Sendmail editar

Provavelmente ao instalar o seu sistema, o mesmo já terá um arquivo com configuração padrão. Este arquivo que é o principal arquivo de configuração chama-se sendmail.cf. Em nosso estudo nós iremos avaliar a utilização de duas ferramentas para gerar um novo arquivo sendmail.cf: a ferramenta m4 e o linuxconf.

Usando o m4 para configurar o sendmail editar

O m4 é uma ferramenta utilizada para criar o arquivo sendmail.cf. Esta ferramenta é comum às várias distribuições do Linux e, portanto, você poderá utilizá-la de forma genérica, ou seja, poderá utilizar nas várias distribuições do Linux que existem no mercado. O pacote sendmail já vem com esta ferramenta de configuração. Esta configuração e construção do arquivo sendmail.cf é feita através dos arquivos de fonte m4. Estes arquivos contém comandos de macro pelo qual o m4 utiliza para construir o sendmail.cf. Assim a configuração do sendmail.cf é facilitada, haja visto que a alteração direta deste arquivo é inviável pelo fato da sintaxe não ser amigável.

<img src="%ATTACHURLPATH%/pag_345a.jpg" alt="pag_345a.jpg" width="409" height="117" />
Fig. 5 - O processador m4.


O m4 é um processador de macros que utiliza uma sintaxe mais clara, assim para configurar o sendmail você não precisará entender o arquivo sendmail.cf.

Os arquivos de macro, no caso da distribuição Conectiva Linux, se encontra no diretório /usr/lib/sendmail-cf/cf. No caso da distribuição do Linux Slackware®, o diretório é /usr/src/sendmail/cf/cf/

Arquivo fonte m4 editar

Dentro do diretório /usr/lib/sendmail-cf/cf encontramos vários arquivos fontes m4. Os arquivos de macros m4 podem ser editados e então processados pelo processador de macro m4 para produzir um novo arquivo sendmail.cf. Um exemplo de um arquivo protótipo, é o arquivo tcpproto.mc, este arquivo contém as seguintes macros:

divert(0)dnl
VERSIONID(`@(#)tcpproto.mc      8.10 (Berkeley) 5/19/1998')
OSTYPE(unknown)
FEATURE(nouucp)
MAILER(local)
MAILER(smtp)

Macros não são comandos do sendmail; na verdade são entradas para o processador m4. Estas macros apresentadas são precedidas por vários comentários que não estão apresentados aqui, estes comentários são descartados pelo m4 através de uma entrada neste arquivo que está na primeira linha deste arquivo, a entrada divert(-1).

A entrada divert(0)dnl indica quais linhas devem ser processadas pelo processador m4. A entrada dnl é usada para prevenir o excesso de linhas em branco. Assim, o processador m4 processará apenas as entradas de macro deste arquivo, todas as linhas em branco e espaços em branco serão descartados.

Agora estudaremos todas as macros apresentadas neste exemplo:

  • VERSIONID: Esta macro é utilizada para o controle de versão. Usualmente o valor passado para macro está ligado ao número da versão em formato RCS - Release Control System - ou SCCS - Source Code Control System.
  • OSTYPE: Carrega o arquivo de fonte m4 a partir do diretório cf/ostype que define a informação do sistema operacional. O diretório /usr/lib/sendmail-cf/cf/ostype contém mais de 40 arquivos de macro de sistemas operacionais pré-definidos. Apesar disto, você criará seu próprio OSTYPE para a configuração de exemplo. Esta macro é necessária. Exemplo de valores são: bsd4.4, solaris2, e linux.
  • FEATURE: Define as características opcionais do arquivo sendmail.cf. A característica nouucp definida significa que nenhum código de processamento de endereço UUCP será incluído na configuração do sendmail.cf.
  • MAILER: Esta macro é utilizada para definir os tipos de programas de correio utilizados pelo sendmail. A macro MAILER(local) acrescenta o programa de correio local na configuração. A macro MAILER(smtp) adiciona os programas de correio SMTP, Extended SMTP, 8-bit SMTP e mensagem transmitida. Estes são os programas necessários para o servidor de e-mail.

No caso de uma configuração simples teríamos o trabalho de apenas alterarmos uma entrada neste arquivo. Começaremos com este simples exemplo de configuração e depois aprofundaremos o nosso estudo.

Para criar um exemplo de sendmail.cf para o sistemas Linux a partir do tcpproto.mc, copie o arquivo protótipo tcpproto.mc para um outro arquivo de trabalho. Edite o arquivo de trabalho alterando a linha referente a OSTYPE, mude o nome unknown para linux. Em nosso exemplo, utilizaremos o comando sed para trocar unknown para linux. O arquivo de trabalho que criaremos se chamará linux.mc. Veja o comando:

#sed 's/unknown/linux/' < tcpproto.mc > linux.mc

O comando sed é um processador de texto, ele é utilizado para alterar textos, o uso do sed não é obrigatório, você pode utilizar o seu editor de texto de preferência

%PASSO% Depois entre com o comando:

#m4 ../m4/cf.m4 linux.mc > sendmail.cf

Este último comando gera o arquivo de configuração sendmail.cf, este arquivo está pronto para ser lido pelo serviço sendmail.

Criando um arquivo m4 editar

OSTYPE não é a única macro que pode ser alterada ou criada, você pode acrescentar várias outras macros ao arquivo. Existe um grande número de opções que podem ser utilizadas. Entre elas podemos criar um arquivo DOMAIN m4 que permite personalizar algumas configurações para um determinado domínio. A macro DOMAIN aponta para um arquivo no diretório /usr/lib/sendmail-cf/domain que deve conter informações específicas para um domínio. Assim, devemos criar um arquivo chamado sistemasabertos.com.br.m4, este arquivo pode ser criado a partir do arquivo generic.m4.

#cd /usr/lib/sendmail-cf/domain
#cp generic.m4 sistemasabertos.com.br.m4
#chmod 644 sistemasabertos.com.br.m4
Veja agora o conteúdo do sistemasabertos.com.br.m4 que até o momento é o mesmo conteúdo do generic.m4. 
divert(0)
VERSIONID(`@(#)generic.m4       8.9 (Berkeley) 5/19/1998')
define(`confFORWARD_PATH', `$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward')dnl
FEATURE(redirect)dnl
FEATURE(use_cw_file)dnl

%PASSO% Entre as macros apresentadas acima, as inéditas em nosso estudo são:

define(`confFORWARD_PATH...

Esta macro define onde o sendmail deve procurar pelo arquivo .forward do usuário. A variável $z contém o nome do caminho do diretório pessoal do usuário e a variável $w contém o nome de host do sistema. Suponha que o nome de usuário seja fulano e o nome de host seja lab1. o sendmail primeiramente procurará pelo arquivo .forward.lab1 no diretório /home/fulano/, depois ele irá procura pelo arquivo /home/fulano/.forward.

  • FEATURE(redirect)dnl : Esta macro adiciona suporte para redirecionamento de e-mail através do arquivo /etc/aliases. A utilização deste arquivo é mostrada mais à frente.
  • FEATURE(use_cw_file)dnl : Esta característica fornece um meio para definir apelidos [alias] para o host, através do arquivo /etc/sendmail.cw, o qual permite um servidor de mensagens aceitar uma mensagem endereçada aos seus apelidos. Por exemplo, caso este servidor seja o servidor que responde pelo email de outro domínio (outrodominio.com.br), então você poderia incluir neste arquivo, o alias deste servidor relativo a este domínio, tal como smtp.outrodominio.com.br, sendo que cada linha é um alias. Esta opção é essencial para a implementação de emails-virtuais, de forma que seu servidor pode responder como o Mail Exchanger (MX) - veja mais sobre o capítulo sobre DNS - de outros domínios.

Depois de estudadas estas configurações, deve ser adicionadas as seguintes linhas:

MASQUERADE_AS(sistemasabertos.com.br)
FEATURE(masquerade_envelope)
FEATURE(genericstable)
MASQUERADE_AS

Caso esta diretiva não seja efetivada, por padrão a parte do e-mail que identifica o host será o nome canônico (real) do host. Caso contrário, será o nome fornecido como argumento. Por exemplo, quando fulano enviar um e-mail pelo host smtp.sistemasabertos.com.br e esta opção não estiver sido configurada, o email do remetente será identificado como fulano@smtp.sistemasabertos.com.br; caso contrário, se o nome sistemasabertos.com.br for fornecido na opção MASQUERADE_AS, então o email do remetente será identificado como fulano@sistemasabertos.com.br.

  • FEATURE(genericstable): Esta macro diz ao sendmail para utilizar o banco de dados de conversão de endereço genérico para converter nomes de usuário para o valor encontrado no banco de dados. A criação e utilização deste banco de dados é mostrado logo a seguir.

Nós podemos criar o banco de dados através do comando makemap

%PASSO% Eis aqui um exemplo de um formato de banco de dados:

joao joao.lima@sistemasabertos.com.br
gardenia gardenia.fraga@sistemasabertos.com.br
monica monica.jao@sistemasabertos.com.br
patricia patricia.cedro@sistemasabertos.com.br

Cada linha neste arquivo deve ter dois campos: O primeiro campo deve ser o login do usuário, o segundo campo é o endereço de e-mail contendo o primeiro nome e o último nome do usuário separados por um ponto. Os campos são separados por espaços. Usando o banco de dados o e-mail de joao retornará o valor joao.lima@sistemasabertos.com.br. O comando makemap está incluído no sendmail versão 8. O mesmo necessita da biblioteca ndbm. A sintaxe do comando makemap é:

makemap tipo nome

Suponha que os dados mostrados acima estão armazenados em uma arquivo chamado listadenomes.txt. O comando a seguir converteria esse arquivo em um banco de dados de tabela genérica:

%PASSO%

#makemap hash generictable < listadenomes.txt

Neste exemplo criamos um banco de dados do tipo hash, existem outro tipos de banco de dados suportado pelo makemap, entre eles estão o dbm e o btree.

Depois que o banco de dados de tabela genérica foi criado, ao referenciar ao nome joao, o nome de e-mail retornado será joao.lima.

Agora que você criou o banco de dados, nós devemos criar um novo arquivo de configuração do sendmail. Você deve ainda acrescentar uma nova macro, a macro DOMAIN, no arquivo de controle de macro, o arquivo linux.mc e, então, utilizar o processador de macro m4. Veja estas passagens:

#tail linux.mc

divert(0)dnl
VERSIONID(`@(#)tcpproto.mc      8.10 (Berkeley) 5/19/1998')
OSTYPE(linux)
DOMAIN(sistemasabertos.com.br)
FEATURE(nouucp)
MAILER(local)
MAILER(smtp)

#m4 ../m4/cf.m4 linux.mc > sendmail.cf

%PASSO% Copie o sendmail.cf gerado para o diretório /etc e, em seguida, inicie o serviço sendmail:

#cp /usr/lib/sendmail-cf/cf/sendmail.cf /etc/mail/
#/etc/rc.d/init.d/sendmail start

%PASSO% O sendmail apresenta uma grande gama de ferramentas para teste e verificação. Depois de criado o arquivo sendmail.cf, você pode testá-lo usando o comando sendmail com alguns parâmetros. Veja o exemplo:

# /usr/lib/sendmail -Csendmail.cf -t -v
To: jpaulo@intranet.sistemasabertos.com.br
From: root
Subject: teste

testando o envio de e-mail.
.
jpaulo@intranet.sistemasabertos.com.br... Connecting to intranet.sistemasabertos.com.br. via esmtp...
220 intranet.sistemasabertos.com.br ESMTP Sendmail 8.9.3/8.9.3; Fri, 17 Aug 2001 10:45:47 -0400
>>> EHLO localhost.localdomain
250-intranet.sistemasabertos.com.br Hello [200.193.199.60], pleased to meet you
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ONEX
250-ETRN
250-XUSR
250 HELP
>>> MAIL From:<root@localhost.localdomain> SIZE=96
250 <root@localhost.localdomain>... Sender ok
>>> RCPT To:<jpaulo@intranet.sistemasabertos.com.br>
250 <jpaulo@intranet.sistemasabertos.com.br>... Recipient ok
>>> DATA
354 Enter mail, end with "." on a line by itself
>>> .
250 KAA17935 Message accepted for delivery
jpaulo@intranet.sistemasabertos.com.br... Sent (KAA17935 Message accepted for delivery)
Closing connection to intranet.sistemasabertos.com.br.
>>> QUIT
221 intranet.sistemasabertos.com.br closing connection

Se tudo estiver correto, a mensagem será entregue com sucesso como apresentado no exemplo acima.

Nota: Caso você queira saber mais sobre como utilizar o m4 e as opções do /etc/sendmail.cf, veja documentos disponíveis em http://www.sendmail.org/m4. Caso você queira saber mais especificamente sobre as possíveis features (características) que podem ser implementadas através da diretiva FEATURE mostrada anteriormente, acesse o endereço http://www.sendmail.org/m4/features.html.


O arquivo /etc/mail/sendmail.cf editar

O arquivo /etc/mail/sendmail.cf é considerado por alguns um arquivo de configuração incompreensível, justificando ainda mais a necessidade do uso de arquivos de macros m4. Mesmo assim, é importante compreender pelo menos parcialmente este arquivo, seja para fazer pequenas ajustes finos, ou para verificar se as macros do m4 foram realmente efetivas como fora programado. Para saber mais sobre todos os detalhes das opções deste arquivo, você pode consultar o documento acessado em http://www.sendmail.org/~ca/email/doc8.9/op-sh-5.html. Abra e veja no arquivo sendmail.cf, algumas destas opções:

  • DMsistemasabertos.com.br - opção que informa qual domínio o servidor de domínio irá mascarar.
  • FR-o /etc/mail/relay-domains %[^\#] - opção que informa o arquivo para o qual o sendmail poderá fazer encaminhamentos de e-mail [relaying].
  • Mlocal, P=/usr/lib/sm.bin/sensible-mda, ...- opção que informa qual é o MDA utilizado pelo sendmail. Neste caso, está sendo utilizado o MDA sensible-mda.

Nota: Nas versões mais antigas, este arquivo se encontra em /etc/sendmail.cf.

Configurando o Sendmail com o Linuxconf editar

Este tópico tem como finalidade apresentar uma forma alternativa de configurar o sendmail através da ferramenta linuxconf. Esta ferramenta está disponível nas distribuições Red Hat e Conectiva Linux. Não cabe aqui explicar minuciosamente todas as opções que o Linuxconf oferece, mas sim explicar apenas as opções necessárias para que o sendmail funcione de uma forma adequada.

No linuxconf, as configurações do Sendmail estão dentro do menu Ambiente de Rede --> Tarefas de Servidor --> Sendmail - sistema de envio de e-mails. Vejamos as opções que o Linuxconf fornece:

Vá para o item configurar informações básicas. É nesta próxima janela que você irá fazer suas alterações. Vejamos:

%PASSO% Abaixo estão apresentadas os parâmetros que devem ser configurados:

Apresentar seu sistema como sistemasabertos.com.br
[X] Aceitar e-mail para sistemasabertos.com.br
Servidor de e-mail  lab1.sistemasabertos.com.br
Protocolo do roteador de e-mail smtp

Funcionalidades DNS

[X] Esperar pelo DNS
[ ] Não usar DNS

O nome do Servidor de e-mail deve ser o nome da máquina em que você está executando o Linuxconf. Neste exemplo estamos considerando que esta máquina é a lab1.sistemasabertos.com.br. No Linuxconf existe uma opção chamada Roteador de e-mail, esta opção não precisa ser necessariamente configurada.

%PASSO% Depois de feito as alterações, é hora de reinicializar o daemon do sendmail:

#/etc/rc.d/init.d/sendmail restart

%PASSO% Você ainda pode ver se o sendmail está sendo executado através da entrada:

{| cellpadding="5" cellspacing="0" border="1"
|-
|#ps aux ||grep sendmail
|}

Você pode verificar se o sendmail está aceitando conexões, fazendo uso do telnet aplicado à porta 25 que é a porta de comunicações dos MTAs.

#telnet localhost 25

Definindo quais máquinas podem fazer relay editar

Depois de configurado o servidor, deve-se definir quais máquinas podem utilizar o servidor para retransmitir mensagens (relay). Esta configuração é feita através do arquivo /etc/mail/ip_allow.

%PASSO% Vejamos um exemplo de configuração deste arquivo:

#cat /etc/mail/ip_allow
10.1.
10.2.

Esta configuração permite que máquina da rede 10.1.0.0/16 e 10.2.0.0/16 possam utilizar o servidor de e-mail para transmitir suas mensagens. Caso este arquivo não exista você deve criá-lo.

%PASSO% Depois de editado o arquivo, você reiniciar o serviço do sendmail:

#/etc/rc./init.d/sendmail restart

Nota: você pode encontrar versões do sendmail que utiliza um arquivo diferente do ip_allow. Neste caso consulte o endereço http://www.sendmail.org

<img src="%ATTACHURLPATH%/pag_356a.jpg" alt="pag_356a.jpg" width="547" height="242" />
Fig. 8 - Processo de reencaminhamento de e-mail.


Usando o sendmail para receber mensagens editar

O sendmail é executado de duas formas diferentes. Quando você envia a mensagem, um processo sendmail é iniciado, este entrega a sua mensagem e então termina. Para receber a mensagem, o sendmail executa um processo daemon persistente. A opção -bd diz ao sendmail para executar como um daemon e escutar a porta 25 TCP, use esta opção para aceitar a chegada da mensagem TCP/IP. Sem isto, seu sistema não recolherá a mensagem que está para chegar.

%PASSO% Para iniciar o processo sendmail, entre com o comando:

#/etc/rc.d/init.d/sendmail start

Este comando inicia o serviço. Não é preciso necessariamente passar as opções -db, pois estas opções são passadas através do arquivo /etc/sysconfig/sendmail que é lido pelo serviço ao ser inicializado. Este arquivo tem geralmente duas linhas:

DAEMON=yes
QUEUE=1h

Se a variável DAEMON é igual a yes, o sendmail é iniciado com a opção -bd. A variável QUEUE estabelece o valor do tempo da opção -q. Esta última opção diz ao sendmail daemon com que freqüência deve ser feita uma checagem na fila de mensagens não entregues. Neste caso, ele é de uma hora, não use valores muito baixos. Processar a fila muito freqüentemente pode causar problemas caso a fila cresça muito devido a um problema de entrega, tal como uma interrupção de rede. Para controlar a configuração do daemon, simplesmente mude os valores no arquivo /etc/sysconfig/sendmail.

Arquivos usados pelo sendmail editar

O sendmail inclui diversos arquivos e programas executáveis e precisa que diversos diretórios existam no seu servidor para que funcione corretamente.

mailq editar

%PASSO% Este é um utilitário para visualização da fila de correio, caso não esteja instalado, você pode digitar:

#sendmail -bp

/etc/mail/sendmail.cf editar

Este é o principal arquivo de configuração do sendmail como visto anteriormente.

/var/spool/mqueue/ editar

Esta é localização física da fila de correio.

/var/spool/mail editar

Este diretório contém os arquivos de correio do usuário. Todo arquivo de correio do usuário pode, efetivamente, conter muitas mensagens de correio eletrônico. Isso pode fazer com que se torne muito grande. Observe que este é realmente arquivo de enfileiramento de mensagens - embora alguns leitores de correio eletrônico trabalhem diretamente neste arquivo, outros copiarão as mensagens do diretório de enfileiramento para dentro dos diretórios-base dos usuários.

/etc/mail/yp_allow editar

Este arquivo define as máquinas que podem utilizar o servidor de e-mail para reencaminhar mensagens.

Definindo apelidos de mensagens editar

<img src="%ATTACHURLPATH%/pag_358a.jpg" alt="pag_358a.jpg" width="466" height="267" />
Fig. 9 - Definição de apelidos de mensagem.


Para definir apelidos usamos o arquivo aliases . No Linux, geralmente este arquivo fica no diretório /etc. O formato básico de entradas neste arquivo é:

apelido: lista de recipientes

alias é o nome do usuário no endereço de correio eletrônico e o campo lista de recipientes pode ser um (ou vários) apelido, um (ou vários) outro nome de usuário ou um (ou vários) endereço de correio eletrônico completo.


Funções importantes para implementar alias: editar

Especificam apelidos para usuários individuais Os apelidos podem ser usados para endereçar a mensagem diretamente a nomes especiais, tais como postmaster ou root, aos verdadeiros usuários que fazem esses trabalhos. Quando usado em conjunto com o domínio de registros MX - abordado no capítulo DNS - os apelidos podem ser usado para criar uma estrutura de endereço de e-mail padrão para um domínio.

Repassa mensagem para outros hosts Através de apelidos o sendmail automaticamente passa adiante a mensagem para o endereço de host incluído como parte do endereço do recipiente.

Definem listas de distribuição Através de um apelido você pode definir uma lista de distribuição, assim todos definidos nesta lista receberiam o e-mail definido em um único apelido.

%PASSO% Veja um exemplo deste arquivo:

#cat /etc/aliases

#  Aliases de systemas padrão, estes DEVEM estar presentes.
MAILER-DAEMON:  postmaster
postmaster:     root

# Redirecionamentos gerais para contas falsas
bin:            root
daemon:         root


nobody:         root


# Apelidos bem conhecidos:
manager:        root
dumper:         root
operator:       root


#  Pessoas quem devem ler os e-mails do root
root:          joaolima
#System admisnistrator mailing list
lima:           joao,sivirino,lima,fulano,ciclano,jpaulo,patricia,raiovax,marcelo
coordenacao:    lima, souza 

É importante ressaltar que o sendmail não lê diretamente este arquivo. O sendmail lê um arquivo de banco de dados gerado através do comando newaliases. Toda vez que for feita uma atualização é necessário executar este comando para que as alterações sejam efetuadas.

As doze primeiras linhas definem apelidos para nomes especiais. Estes nomes especiais são usuários do sistema que podem ser encontrados no /etc/passwd. Observe que, caso o sistema direcione e-mail para estes usuários, deve haver um usuário real que possa ler estas mensagens, estes usuários são definidos na parte recipiente da linha correspondente ao pseudo-usuário. Você ainda pode incluir outros usuários para lerem as mensagens direcionadas ao root. Isto é feito através da entrada abaixo que está no arquivo.

# Person who should get root's mail
root:          joaolima

%PASSO% Neste caso quem teria acesso a essas mensagens seria o usuário joaolima. Nas próximas linhas temos:

#System admisnistrator mailing list
lima:           joao,sivirino,lima,fulano,ciclano,jpaulo,patricia,raiovax,marcelo
coordenacao:    lima, souza

Nestas linhas são definidas grupos de mensagens. Exemplo, ao mandar e-mail para a coordenacao, o e-mail terá como destino os usuários lima e souza. Esta flexibilidade no proporciona várias vantagens, entre elas podemos citar: o envio de um mesmo e-mail para todos os usuários de uma rede, citando apenas uma entrada neste arquivo.

Redirecionamento de e-mail editar

Caso você tenha várias contas de e-mail e quer ler seus e-mails em apenas uma conta, você pode redirecionar todos e-mails para uma uma única conta.

<img src="%ATTACHURLPATH%/pag_360a.jpg" alt="pag_360a.jpg" width="563" height="257" />
Fig. 10 - Procedimento de redirecionamento de mensagem.


Para redirecionar um e-mail basta criar um arquivo .forward dentro do diretório home do usuário que quer fazer o redirecionamento. Neste arquivo deve ser colocado apenas o endereço de e-mail de destino.

Vejamos o exemplo: o usuário fulano do domínio sistemasabertos.com.br quer ler seus e-mails na conta fulano@dominio.com.br. Para fazer isto basta o usuário fulano no servidor de e-mail da sistemasabertos.com.br criar o arquivo .forward dentro de seu diretório home, o conteúdo deste arquivo será o e-mail fulano@dominio.com.br. Vejamos os procedimentos:

%PASSO%

$cd /home/fulano
$echo "fulano@dominio.com.br" > .forward

Pronto, todos e-mails que chegarem para fulano@sistemasabertos.com.br serão reenviados para a conta fulano@dominio.com.br.

Configurando o POP editar

O Post Office Protocol, ou POP, pode ser usado pelos usuários remotos para realizar a transferência de suas correspondências eletrônicas do sistema sem abrir uma sessão telnet, por exemplo. Então, o protocolo POP é utilizado quando se deseja buscar uma mensagem que está no servidor. A priori, qualquer um pode mandar e-mail para qualquer um, no caso da recepção de e-mail é diferente. Quando o usuário acessa o servidor POP que utiliza geralmente da porta 110, o mesmo deve fornecer seu login e sua senha.

A configuração do servidor POP é bastante simples e direta. Primeiramente, você precisa certificar-se de que o servidor POP esteja instalado.

O daemon POP pode não ter sido instalado automaticamente. Na distribuição Conectiva®, o daemon POP é empacotado juntamente com o daemon IMAP; portanto, você não vai encontrar o pacote pop, mas sim o imap:

%PASSO%

#rpm -q imap

Depois que o daemon estiver instalado, você precisará habilitar o serviço POP no /etc/inetd.conf. A linha do POP no inetd.conf pode estar comentada, como mostrado no exemplo:

%PASSO%

#pop-3   stream  tcp     nowait  root    /usr/sbin/tcpd ipop3d

Retire o comentário dessas linhas, eliminando o caractere "#" do seu início. Em seguida, depois de alterar o arquivo e salvar as alterações, você precisará reinicializar o daemon inetd.

%PASSO% Você pode certificar-se de que o daemon POP está aceitando conexões enviando um telnet diretamente para a porta 110:

#telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK POP3 localhost v7.64 server ready

Assim, como podemos enviar mensagens diretamente ao servidor de e-mail fazendo uso do telnet, o exemplo que se segue tem como objetivo baixar os e-mails do servidor POP também fazendo uso do telnet.

%PASSO% Primeiramente conecte no servidor POP da mesma forma que foi apresentado acima, ou seja, através de um telnet na porta 110. Depois a seguinte entrada:

USER beltrano
+OK User name accepted, password please
PASS senhabeltrano123
+OK Mailbox open, 3 messages

Caso o servidor autentique o usuário, este abrirá uma sessão e permitirá que o cliente tenha acesso a sua caixa postal. Observe que neste caso a senha é passada sem criptografia, em texto puro. O servidor também indica a quantidade de mensagens disponível para o cliente. Para listar as mensagens disponível digite:

  • LIST : Com este comando, o servidor lista todas as mensagens, para cada mensagem é atribuído um número, cada mensagem é referenciada através deste número, por exemplo: para ver o conteúdo de uma mensagem, você deverá executar o comando "RETR" seguido do número da mensagem conforme a saída do comando "LIST".
  • RETR 31: Este é um exemplo do comando "RETR", em que a mensagem solicitada é a de número 31. Ao executar este comando o conteúdo da mensagem será apresentado. Você pode também querer apagar uma mensagem que esteja no servidor, para isto você deve executar o comando "DELE" seguido do número da mensagem.

Para terminar a sessão com o servidor POP, digite "QUIT".

É interessante ressaltar que os MUAs são os aplicativos que são bem mais amigáveis para fazer este tipo de serviço, são exemplos deles: o netscape, kmail, etc. Este exemplo, tem objetivo apenas didático e é útil para se testar se o serviço POP está funcionando adequadamente. Se você desejar saber mais sobre o protocolo POP, faça uma busca no site do IETF (Internet Engineering Task Force) - http://www.ietf.org/iesg/1rfc_index.txt (arquivo bastante extenso, faça uma busca por POP) - órgão responsável por promover a padronização dos protocolos padrões na Internet.

Configurando um cliente POP editar

<img src="%ATTACHURLPATH%/pag_363a.jpg" alt="pag_363a.jpg" width="374" height="260" />
Fig. 11 - Ilustração do cliente POP3 baixando e-mail do Servidor POP3.


Sabemos que os e-mails são recebidos pelo sendmail e são armazenados na caixa de correio de usuário. Para que os clientes leiam seus e-mails é necessário que eles acessem o seu servidor de e-mail (aquele que possui a caixa de correio do usuário). Para acessar o servidor de e-mail existe o protocolo POP que permite que os e-mails sejam lidos remotamente, assim não há a necessidade de ir até o servidor de e-mail para recuperar os e-mails recebidos. Neste tópico será mostrado como configurar o netscape para baixar os e-mail do servidor POP.

Para configurar o netscape siga os seguintes passos:

  • 1.Vá para Editar-->Preferencias--> Clique na seta de Correios e Notícias --> Identidade. Vejamos: Neste janela você deve especificar o seu nome, seu endereço de e-mail e a sua organização(sua empresa)
  • 2.Vá para Editar-->Preferencias--> Clique na seta de Correios e Notícias --> Servidores de Correio. Vejamos: Nesta janela você deve definir o servidor SMTP e o nome do usuário no Servidor de Mensagens que será o servidor SMTP.
  • 3.Na mesma janela e no campo Servidores de Correio(Recebimento), clique em Incluir. Vejamos: Nesta janela você especificará o nome do servidor, nome do usuário e o tipo de servidor, neste caso o tipo de servidor será o servidor POP.

Aqui acaba a configuração do Netscape.


Lendo as mensagens no Servidor POP através do Netscape editar

Depois de configurado o netscape é hora de acessarmos o servidor POP. Vá para Comunicador -->Centro de Mensagens --> Obter Msg. Vejamos:

Observe que neste momento é solicitado a senha do usuário que foi configurado anteriormente para ter acesso ao servidor de mensagens. Depois de digitar a senha do usuário, as mensagens serão baixadas localmente. Você também pode enviar mensagens, para isto basta ir até Nova Msg.


Configurando o IMAP editar

<img src="%ATTACHURLPATH%/pag_366a.jpg" alt="pag_366a.jpg" width="374" height="260" />
Fig. 15 - Representação do cliente IMAP baixando e-mail do Servidor IMAP.


O IMAP é similar ao POP no sentido de que ambos os protocolos permitem que usuários remotos acessem seus correios eletrônicos. A diferença é que o IMAP permite que os usuários mantenham pastas de correio no seu sistema, em vez de fazer a transferência de todas as suas mensagens para suas próprias máquinas. A diferença do IMAP em relação ao POP é a possibilidade de manipulação das mensagens no próprio servidor. Você pode criar pastas e organizar suas mensagens nelas, fazer buscas nas mensagens, ver somente os cabeçalhos, etc.

A configuração do IMAP é muito semelhante à do POP. Você precisa, assim como o POP, verificar se o IMAP está habilitado no /etc/inetd.conf. A linha no /etc/inetd.conf é similar a esta:

%PASSO%

#imap    stream  tcp     nowait  root    /usr/sbin/tcpd imapd

%PASSO% Descomente a linha, e certifique-se de que o imapd está aceitando conexões, enviando um telnet diretamente para a porta 143:

#telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK localhost IMAP4rev1 v12.264 server ready


Spam editar

Você já deve ter recebidos vários e-mails de propagandas não solicitadas na Internet. O envio generalizado de e-mail utilizado para propagandas como: ganhe dinheiro fácil, compre o mais novo "cd pirata", pornografia, etc. Este e-mails quando enviado para várias contas de e-mail sem solicitação é chamado de SPAM. Evitar e cuidar para que o seu servidor não seja vítima de spam é um assunto extenso e é tratado em materiais mais especializados em segurança. Caro queira saber mais sobre o assunto, acesse o site http://mail-abuse.org/, que traz bom conteúdo sobre este assunto.

Servidor de email virtual editar

Suponha que seu servidor SMTP tenha um nome canônico smtp.seudominio.com.br e é utilizado para enviar e receber seus e-mails tal como fulano@seudominio.com.br. Suponha também que você necessite também hospedar o email de outro domínio, de outra empresa, ou de outro domínio alternativo que sua empresa possui. Você terá que obter outro hardware, para fazer isto? Felizmente, não há necessidade, pois o linux possui a funcionalidade de host virtual (alias) para o seu servidor, de forma que além de poder responder pelos e-mails de um domínio, também seja responsável por outro domínio. Este recurso é denominado servidor de email virtual, e não é tratado neste documento, mas podemos indicar um bom material de como fazer isto: http://www.sendmail.org/virtual-hosting.html. Este material é bem completo e preciso.

Terminologia utilizada no capítulo editar

  • MTA - Acrônimo de Mail Transfer Agent [Agente de transporte de e-mail], responsável pelo transporte de e-mail entre servidores, podendo reencaminhá-lo quando este servidor não for responsável ou simplesmente entregá-lo localmente ao MDA, quando este for e-mail local; provendo um serviço análogo aos roteadores de pacotes de rede.
  • MUA - Acrônimo de Mail User Agent [Agente de e-mail do Usuário], responsável pela interação com o usuário, tornando o processo de composição, envio e recepção de e-mail amigável.
  • MDA - Acrônimo de Mail Delivery Agent [Agente de Entrega de e-mail] é responsável pela entrega do e-mail localmente no servidor, recebendo o e-mail do MTA e armazenando-o na caixa postal.
  • Relay -É o processo que um MTA realiza quando determina que o e-mail recebido não é de nenhum destinatário local, sendo necessário reencaminhá-lo para outro MTA responsável.
  • POP -Acrônimo de Post Office Protocol [Protocolo de Correio], é o protocolo para recebimento de email, que permite que MUA`s acessem suas caixas postais remotamente. Sob o ponto de vista de usuário, é simplesmente o protocolo para “baixar e-mails”.
  • SMTP - Acrônimo de Simple Mail Transport Protocol [Protocolo Simples de Transporte de E-mail], é o protocolo de transporte de email, mas que sob o ponto de vista do usuário é simplesmente o protocolo de envio de email.
  • IMAP - É também como o protocolo POP, um protocolo para acesso remoto à caixa de correio, de forma
  • Caixa de correio - é um espaço individualizado onde se armazenam os e-mails de usuários. Por exemplo, o sendmail armazena o email do usuário fulano, no arquivo /var/spool/mail/fulano.
  • spam - é a prática de envio de e-mail indesejável ou de conteúdo impróprio.
  • alias - é um apelido atribuído a um ou uma lista de recipientes. Todo email destinado ao alias é entregue aos recipientes, podendo ser tanto locais quanto remotos.
  • lista de distribuição - é uma lista de recipientes, com o objetivo de congregar usuários em um assunto em comum, de forma que todo email destinado à lista é enviado à todos participantes da lista. Pode ser implementado através de alias. Por exemplo, uma lista segurança pode congregar pessoas com interesses afins em segurança de redes.
  • recipient [recipiente] - são caixas postais pertencentes a usuários podendo ser tanto locais quanto remotos.
  • m4 - é um processador de macros, que permite gerar o arquivo /etc/sendmail.cf através de um simples arquivo de macros, facilitando a sua geração e manutenção de configuração.
  • masquerade - é o processo pelo qual o email é identificado por um nome determinado em vez de se utilizar o nome canônico (real) do host. Por exemplo, em vez do email do remetente ser identificado como fulano@lab10.sistemasabertos.com.br, este pode ser fulano@sistemasabertos.com.br.

Links indicados editar

  • 1. http//www.sendmail.org - site oficial do sendmail. Pode-se encontrar neste site, além dos mais recentes arquivos-fontes para instalação, também documentação oficial: FAQs, como-fazer, etc.
  • 2. http://www.qmail.org - site oficial do servidor de e-mail qmail, considerado assim como o Postfix, um dos fortes concorrentes ao posto de servidor de e-mail padrão nas distribuições. Além de ser mais seguro, o qmail é também mais veloz e mais robusto.
  • 3. http://www.postfix.org - site oficial do servidor de e-mail postfix, que é atualmente o servidor de e-mail padrão da distribuição Conectiva.
  • 4. http://www.procmail.org - site oficial do procmail, um MDA bastante popular, que possui várias funcionalidades de resposta automática, filtragem de e-mails, redirecionamento de e-mail, etc.
  • 5. http://www.barnard.edu/at/training/eudora/imap.html - POP vs IMAP - É um documento escrito pela Universidade de Barnard, bastante simples e bem objetivo que compara os dois protocolos mais utilizados para se acessar remotamente e-mails de um servidor.
  • 6. http://www.washington.edu/imap/ - Site oficial do UW imap - o mais popular dos servidores IMAP, fornecido como padrão na distribuição Conectiva. Neste site mantido pela Universidade de Washington, além de estar disponível o código-fonte do servidor IMAP, também oferece: documentação, biblioteca em C do cliente IMAP, FAQs e listas de discussão oficiais.
  • 7. http://asg.web.cmu.edu/cyrus/imapd/ - Outra opção de servidor IMAP, mantido pela Universidade de Carnegie Mellon, através do notório projeto Cyrus. Este servidor IMAP também é conhecido como Cyrus IMAP Server.

Exercícios de revisão editar

  • 1. Mostre o passo-a-passo para enviar através do comando telnet um email via protocolo SMTP para um usuário de sua máquina local chamado “fulano”. Também com o comando telnet, verifique o conteúdo da caixa postal de “fulano”.
  • 2. Como eu poderia configurar o sendmail para que todo email por ele enviado para o usuário root, além de ser armazenado na caixa postal local do root, seja também enviado para o usuário local fulano e para o beltrano, de email beltrano@algumdominio.com.br?
  • 3. Suponha que o seu servidor esteja atualmente enviando e-mail com identificação de remetentes do tipo fulano@maquina.algumdominio.com.br, o que deveria ser feito para que isto fosse trocado por simplesmente fulano@algumdominio.com.br?
  • 4. Defina com suas próprias palavras, os termos MUA, MDA e MTA? O MDA é sempre encontrado nos servidores de email (cite exemplos)? Qual é a diretiva do sendmail que define qual MDA é utilizado?
  • 5. Como eu poderia liberar uma rede de computadores para fazer redirecionamento pelo meu servidor SMTP? Que incoveniência teria em liberar todas redes (sem restrição de relay)?
  • 6. O que é o m4? Qual é a função dele na configuração do sendmail? Como eu o instalo? Crie um exemplo de arquivo de macros m4 e explique brevemente cada diretiva deste arquivo.
  • 7. Qual é a funcionalidade e diferenças entre os protocolos SMTP, POP e IMAP? Mostre brevemente como seria a instalação de cada um destes protocolos.
  • 8. Quais são as principais deficiências do sendmail? Quais são seus principais “concorrentes”?
  • 9. O que é o comando mail? Para que serve? Como posso utilizá-lo para enviar , receber e-mail? Como seria utilizado para testar mais detalhadamente o envio de um e-mail?
  • 10. Qual é a necessidade e quais formas de interação com a pilha [queue] de e-mails do sendmail?