O que
é SMTP?
O SMTP (Simple Mail Transfer Protocol) e o protocolo
usado no sistema de correio eletrônico na arquitetura
Internet TCP/IP. Um usuário, ao desejar enviar uma
mensagem, utiliza o modulo interface com o usuário
para compor a mensagem e solicita ao sistema de correio
eletrônico que a entregue ao destinatário.
Quando recebe a mensagem do usuário, o sistema
de correio eletrônico armazena uma copia da mensagem
em seu spool (área do dispositivo de armazenamento),
junto com o horário do armazenamento e a identificação
do remetente e do destinatário. A transferência
da mensagem e executada por um processo em background,
permitindo que o usuário remetente, apos entregar
a mensagem ao sistema de correio eletrônico, possa
executar outras aplicações. O processo de
transferência de mensagens, executando em background,
mapeia o nome da maquina de destino em seu endereço
IP, e tenta estabelecer uma conexão TCP com o servidor
de correio eletrônico da maquina de destino. Note
que o processo de transferência atua como cliente
do servidor do correio eletrônico. Se a conexão
for estabelecida, o cliente envia uma copia da mensagem
para o servidor, que a armazena em seu spool. Caso a mensagem
seja transferida com sucesso, o servidor avisa ao cliente
que recebeu e armazenou uma copia da mensagem. Quando
recebe a confirmação do recebimento e armazenamento,
o cliente retira a copia da mensagem que mantinha em seu
spool local. Se a mensagem, por algum motivo, não
for transmitida com sucesso, o cliente anota o horário
da tentativa e suspende sua execução.
Periodicamente o cliente acorda e verifica se existem
mensagens a serem enviadas na área de spool e tenta
transmiti-las. Se uma mensagem não for enviada
por um período, por exemplo, de dois dias, o serviço
de correio eletrônico devolve a mensagem ao remetente,
informando que não conseguiu transmiti-la. Em geral,
quando um usuário se conecta ao sistema, o sistema
de correio eletrônico e ativado para verificar se
existem mensagens na caixa postal do usuário. Se
existirem, o sistema de correio eletrônico emite
um aviso para o usuário que, quando achar conveniente,
ativa o modulo de interface com o usuário para
receber as correspondências.
Uma mensagem SMTP divide-se em duas partes: cabeçalho
e corpo, separados por uma linha em branco. No cabeçalho
são especificadas as informações
necessárias para a transferência da mensagem.
O cabeçalho e composto por linhas, que contem uma
palavra-chave seguida de um valor. Por exemplo, identificação
do remetente (palavra-chave "to:" seguida do
seu endereço), identificação do destinatário,
assunto da mensagem, etc... No corpo são transportadas
às informações da mensagem propriamente
dita. O formato do texto e livre e as mensagens são
transferidas no formato texto. Os usuários do sistema
de correio eletrônico são localizados através
de um par de identificadores. Um deles especifica o nome
da maquina de destino e o outro identifica a caixa postal
do usuário. Um remetente pode enviar simultaneamente
varias copias de uma mensagem, para diferentes destinatários
utilizando o conceito de lista de distribuição
(um nome que identifica um grupo de usuários).
O formato dos endereços SMTP é o seguinte:
nome_local@nome_do_dominio onde o nome_do_dominio identifica
o domínio ao qual a maquina de destino pertence
(esse endereco deve identificar um grupo de maquinas gerenciado
por um servidor de correio eletrônico). O nome local
identifica a caixa postal do destinatário. O SMTP
especifica como o sistema de correio eletrônico
transfere mensagens de uma maquina para outra. O modulo
interface com usuário e a forma como as mensagens
são armazenadas não são definidos
pelo SMTP. O sistema de correio eletrônico pode
também ser utilizado por processos de aplicação
para transmitir mensagens contendo textos.