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

|