LG_jc.gif (3670 bytes)
 






Atualizada às terças

Programando um cliente de mail - Parte 2

Para desenvolvermos uma aplicação de e-mail, precisamos conhecer os protocolos que regulam a conversação entre o cliente e servidor. Esses protocolos, felizmente para nós, são públicos e documentados pela RFC821 (RFC é abreviatura
de Request For Comments, um documento típico para estabelecimento de padrões da internet), e denominado "Simple Mail Transport Protocol" ou abreviadamente
SMTP.  O SMTP define um modelo de comunicação  onde o SMTP-Cliente, chamado "sender", estabelece uma comunicação com outro programa,
o SMTP-Servidor (ou "receiver"), que é um programa tal como o Sendmail, Smail, Qmail, Exim ou outros semelhantes, que são também conhecidos como
"Mail Transport Agents" ou MTAs.


modelo de comunicação do SMTP

Veremos apenas os comandos mais importantes para o nosso objetivo, uma vez que a RFC821 discute possibilidades como inversão de papéis entre o transmissor e receptor, verificação de destinatário, etc.

O procedimento básico é primeiramente o cliente enviar o comando "MAIL From: <remetente>\n\r"  onde o <remetente> é o endereço de e-mail do recipiente da mensagem, por exemplo: torvalds@transmeta.com.
Os símbolos "\n\r" indicam um fim de linha, isto é, os caracteres "linefeed" e "carriage-return", invisíveis.
Em seguida precisamos definir o destinatário da mensagem, com o comando "RCPT To: <destinatário>\n\r".

Cada um destes comandos deverá receber uma resposta, na forma de uma linha contendo "250 OK\n\r", ou outra mensagem em caso de erro.  Um programa
realmente robusto deverá analisar o resultado e informar ao usuário o que está acontecendo.

Agora podemos começar a enviar a nossa mensagem real, incluindo cabeçalhos que a constituirão, com o comando "DATA\n\r", aguardar a resposta e enviar várias linhas, até o final da mensagem, quando será enviada a sequência "\n\r.\n\r", isto é, uma linha contendo tão somente o caracter "." (ponto).  Quando o servidor detecta essa linha, ele encerra o comando DATA e devolve uma resposta indicando se a mensagem foi aceita (novamente o "250 OK").

No início dessa mensagem devemos colocar informações como "Date:", "To:", "Cc:", "From:", e "Subject:", como estamos acostumados a verificar nos
cabeçalhos das nossas mensagens de e-mail. Para encerrar a comunicação, existe o comando "QUIT\n\r". Incidentalmente, existe também um comando de apresentação "HELO <máquina do cliente>\n\r", mas
este comando não é inteiramente necessário.

Podemos testar esse procedimento usando o programa "telnet" a partir de um terminal e nos conectando a um servidor de smtp. Digamos que o seu provedor
seja mail.provedor.com.br, assim podemos conectar a seu smtp-server com o comando "telnet mail.provedor.com.br smtp" e testar o protocolo definido acima. 

Ainda precisamos traduzir todas essas informações em um programa tcl para que ele funcione com a nossa interface visual, mas isso será o assunto da próxima semana. 

  Anteriores

Programando um cliente de e-mail (I) (05/10/1999)
Visual Tcl Parte 3
(28/09/1999)
Visual Tcl Parte 2
(21/09/1999)
O Visual Tcl 
(14/09/99)
Programando para Linux (08/09/1999)