Sie sind auf Seite 1von 24

Aplicações Internet

Correio electrónico

• Correio electrónico (E-mail)


– É um dos serviços mais utilizados da Internet.

– Permite, através de um conjunto de protocolos, efectuar a troca


de mensagens entre hosts e, em último lugar, entre utilizadores:

• Protocolo SMTP (Simple Mail Transfer Protocol)


– Tem a responsabilidade de realizar a troca de mensagens entre
servidores de e-mail.

• Protocolos POP3 (Post Office Protocol, version 3) e IMAP (Internet


Message Access Protocol)
– Complementam o primeiro, na tarefa de disponibilizar este
serviço aos utilizadores.

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Correio electrónico

• Elementos de uma mensagem de e-mail


• From endereço de origem, na forma utilizador@servidor
• To endereço(s) de destino, na forma utilizador@servidor
• Cc cópia da mensagem (destinatário visível)
• Bcc Cópia da mensagem (destinatário invisível)
• Subject assunto
• Message mensagem a enviar (texto)
• Attach ficheiros a enviar conjuntamente com a mensagem

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Correio electrónico

• Metodologia store and forward


• Cada utilizador possui uma caixa de correio (mailbox) num servidor.

• O email funciona de uma forma “store and forward”.


– As mensagens são guardadas no servidor até que ele seja capaz de as
entregar aos respectivos servidores de destino.

• A mensagem é mantida na respectiva caixa de correio do servidor de destino


até que o destinatário possa lê-la.

• A entrega das mensagens não é imediata.


– O tempo de envio das mensagens depende da taxa de transferência, nível
de utilização e prioridade do tráfego entre cliente e servidor de e-mail e
entre o servidor de envio e de recepção da mensagem.
– Quando se enviam ficheiros juntamente com a mensagem (em attach), a
transmissão é mais demorada, como é óbvio.

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Correio electrónico
• História do SMTP
– 1980: Mail Transfer Protocol (MTP) -RFC 772
– 1981: Proposta inicial do Simple Mail Transfer Protocol
(SMTP) – RFC 788
– 1882: revisão do Simple Mail Transfer Protocol (SMTP) –
RFC 821, 822
– 1995: Proposta de um mecanismo para suportar extensões ao
SMTP (ESMTP)- RFC 1869
– 2001: A versão actual do Simple Mail Transfer Protocol
(SMTP) - RFC 2821 + Formato das mensagens - RFC 2822
– 2002: Extensão para suportar SMTP seguro sobre TLS – RFC
3207
Nota: existem muitos mais RFC relacionados com o protocolo SMTP

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Correio electrónico

• SMTP - Simple Mail Transfer Protocol (RFC821)


• O STD 10/RFC 821 define a transmissão de dados por SMTP, utilizando a
representação de caracteres ASCII, de 7 bits (com um máximo de 1000
caracteres por linha).
– Representação suficiente para texto em Inglês, mas inadequada para a
maioria de outras línguas.
– Alternativas para resolver este problema:
» Extensões MIME (Multipurpose Internet Mail Extensions).
» SMTP Service Extensions (RFC 1869, RFC 1652, RFC 1870).
» HTML

• O RFC 821 define um protocolo do tipo Cliente/Servidor.


– O cliente SMTP é aquele que inicia a sessão (o que envia) e o servidor
SMTP é o que responde ao pedido de estabelecimento de uma sessão (o
que recebe a mensagem).

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Correio electrónico

– SMTP (continuação)
• É um protocolo simples baseado em comandos de texto ASCII, que
serve para enviar mensagens de e-mail para agentes MTA (Message
Transfer Agent).
• A comunicação é feita tipicamente para o port TCP 25, sem
encriptação (não assegura confidencialidade).

MTA Comandos/Respostas SMTP MTA


#1 #2

Internet

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Correio electrónico: SMTP

– Agentes de trânsito
– Simplificam a configuração dos MTAs locais.
– “Escondem” os diversos sistemas individuais ao exterior.

MTA MTA
local local

MTA MTA Internet MTA MTA


local trânsito trânsito local

MTA MTA
local local

Organização #1 Organização #2

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Correio electrónico

• As mensagens SMTP são constituídas por:


• Cabeçalho (ou envelope)
– Definido no RFC 822.
– É terminado por uma linha nula (uma linha vazia antes da
sequência <CRLF>).

• Conteúdo:
– Todo o conteúdo antes de uma linha em branco pertence ao corpo
da mensagem (sequências de linhas que contêm caracteres
ASCII).

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Correio electrónico: SMTP

• Alguns comandos SMTP


– HELO: identifica o emissor SMTP ao receptor; o argumento deste comando deverá conter o
nome da máquina que pretende estabelecer uma comunicação ao servidor SMTP.
– EHLO: identifica o emissor SMTP ao receptor; o argumento deste comando deverá conter o
nome da máquina que pretende estabelecer uma comunicação ao servidor SMTP. O servidor
SMTP envia de seguida a lista de extensões SMTP que suporta
– MAIL: inicia uma transacção de dados de mail para uma mailbox.
– SEND: inicia uma transacção de dados de mail para um terminal.
– SOML (SEND or MAIL): inicia uma transacção de dados de mail para um terminal; Se o
terminal não estiver disponível, inicia uma transacção de dados de mail para uma mailbox.
– SAML (SEND and MAIL): inicia uma transacção de dados de mail em simultâneo para um
terminal e para uma mailbox.

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Correio electrónico: SMTP

– Lista de comandos SMTP (continuação)


– RCPT: identifica um destinatário individual para a mensagem; múltiplos destinatários são
declarados utilizando vários comandos RCPT.
– DATA: indica que os dados que se seguem fazem parte da mensagem; os dados são
caracteres ASCII; podem ser utilizados vários comandos DATA; a mensagem termina com a
sequência <CRLF>.<CRLF>.
– RSET: aborta a transacção corrente de mail.
– VRFY: pede ao receptor para confirmar a existência de um determinado utilizador.
– EXPN: pede ao receptor para confirmar a existência de uma determinada mailing-list.
– HELP: pede ao receptor para enviar ajuda sobre um determinado comando.
– NOOP: verifica se o receptor está activo (é uma espécie de ping para e-mail).
– QUIT: fecha o canal de comunicação.
– TURN: pede ao receptor para trocar de funções com o emissor; se aceitar, o antigo receptor
torna-se emissor e o antigo emissor passa a receptor.

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Correio electrónico: SMTP

– SMTP (continuação) Todas as respostas têm um código


• Exemplo de sessão numérico no início da linha. Exemplos:

>>> HELO gestor.est.ipcb.pt 250 - Requested mail action okay,


250 Nice to meet you completed

>>> MAIL From:<benfiquista@mail.est.ipcb.pt > 354 - Start mail input; end with
250 < benfiquista@mail.est.ipcb.pt >... Sender ok <CRLF>.<CRLF>

>>> RCPT To:< portista@gmail.com > 221 <domain> - Service closing


250 < portista@gmail.com >... Recipient ok transmission channel

>>> DATA
354 Enter mail, end with “.” on a line by itself
Este ano vamos ser campeões!
>>> .
250 Mail accepted

>>> QUIT
221 mail.est.ipcb.pt delivering mail

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Correio electrónico

• ESMTP – Extended Simple Mail Transfer Protocol


– Define várias extensões ao SMTP
– Definido na RFC 2821
– Substitui o HELO por EHLO
– A resposta do servidor mostra as extensões suportadas

Cliente: EHLO cliente.teste.pt


Servidor: 250-servidor.com Hello cliente.teste.pt
Servidor: 250-PIPELINING
Servidor: 250-SIZE 10280032
Servidor: 250 HELP

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Correio electrónico

• Algumas extensões SMTP:


– 8BITMIME: Permite a transmissão de dados codificados em octetos (8 bits);
– SMTP-AUTH: suporta autenticação dos clientes antes de estes terem acesso aos
serviços SMTP;
– CHUNKING: permite o envio de mensagens grandes em vários blocos (chunks);
– HELP: fornece informações de ajuda
– PIPELINING: suporta o envio de vários comandos SMTP de uma vez,
melhorando assim o desempenho
– SIZE: permite indicar o tamanho de uma mensagem prestes a ser enviada para um
servidor SMTP. Compete ao servidor aceitar ou não esta mensagem
– STARTTLS: suporta SMTP sobre TLS, garantindo confidencialidade e
autenticação nas transações SMTP

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Correio electrónico: POP3

• Post Office Protocol, Version 3 (POP3)


– Protocolo standard (STD 53), descrito no RFC 1939.
– Suporta funções básicas (download e eliminação) na obtenção de mensagens de
correio electrónico a partir de um servidor de mailboxes.
– Na interacção com o Servidor, o Cliente envia comandos e o Servidor reage com
respostas.
– As respostas podem conter até 512 caracteres e começam com um indicador de
estado, que traduz se a resposta é positiva (+OK) ou negativa (-ERR).

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Correio electrónico: POP3

• Modo de funcionamento:
– Os clientes POP3 estabelecem conexões TCP com o servidor usando tipicamente o
porto 110.
– Quando a conexão é estabelecida, o servidor POP3 envia uma mensagem de
saudação ao cliente, entrando a sessão em modo authentication state.
– De seguida, o cliente tem de enviar a identificação para o servidor.
– Se este verifica o ID com sucesso, a sessão entra em modo transaction state.
– A partir deste momento, o cliente pode aceder à mailbox.
– Quando o cliente envia o comando QUIT, a sessão entra em update state, e a
conexão é terminada.

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Correio electrónico: POP3

• Comandos mais importantes:


– USER name: username para autenticação.
– PASS password: password para autenticação.
– STAT: obtém o número e o tamanho total das mensagens.
– LIST [msg]: se for especificado o número da mensagem, é indicado o seu tamanho; se
nenhum número não for indicado, são listados os tamanhos de todas as mensagens.
– RETR msg: solicita o envio da mensagem com o número msg para o cliente.
– DELE msg: solicita a eliminação da mensagem especificada.
– NOOP: O servidor não faz nada, apenas envia uma resposta positiva.
– RSET: este comando cancela pedidos anteriores de eliminação de mensagens, se eles
existirem (dentro de uma mesma sessão).
– QUIT: se enviado em modo authorization state, termina apenas a conexão TCP; se enviado
em transaction state, actualiza a mailbox (elimina as mensagens de pedidos anteriores) e por
fim termina a conexão TCP.

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Correio electrónico: IMAP4

• Internet Message Access Protocol, Version 4 (IMAP4)


– Descrito no RFC 2060.
– Protocolo de manuseamento de caixas de correio electrónico, similar ao
POP3.
– Os servidores IMAP4 armazenam mensagens de múltiplos utilizadores,
que podem ser acedidas por pedidos de clientes.
– Os clientes IMAP4 apresentam mais capacidades de interacção com os
servidores, do que no POP3.
– Permite que os clientes acedam e controlem múltiplas mailboxes ao
mesmo tempo.
– Mantém as mensagens no Servidor, replicando-as para os clientes e
sincronizando as mailboxes entre os clientes e o servidor.
– Os clientes IMAP4 podem especificar critérios para o carregamento de
mensagens (Ex: tamanho máximo, …).

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Correio electrónico: IMAP4

– IMAP4 (continuação)
• Suporta três modelos de gestão das mailboxes:
– Offline: o cliente liga-se periodicamente ao servidor e copia as mensagens, sendo
de seguida eliminadas do servidor (modelo utilizado pelo POP3).
– Online: o cliente efectua alterações no servidor (o e-mail é processado
remotamente neste).
– Disconnected: mistura dos dois modelos anteriores. O cliente copia as mensagens
e efectua alterações localmente. Mais tarde, faz o upload destas alterações para o
servidor.

• Os servidores IMAP4 normalmente respondem


aos comandos dos clientes no porto 143.
– Após o período de estabelecimento da conexão TCP, ambos trocam dados
interactivamente, com o cliente a enviar comandos e o servidor a enviar respostas.

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Correio electrónico: IMAP4

– Uma sessão IMAP4 passa por diferentes


estados:
• Non-Authenticated: o cliente envia identificação para o servidor.
• Authenticated: o cliente tem de seleccionar a mailbox que vai utilizar.
• Selected: a mailbox foi seleccionada com sucesso.
• Logout: a conexão é terminada, após um pedido do cliente, ou por
qualquer outro motivo.

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Correio electrónico: IMAP4

• Vantagens do IMAP sobre o POP:


– Permite vários clientes ligados simultâneamente na mesma mailbox;

– Permite a criação de múltiplas mailboxes no servidor;

– Permite três modos de operação: offline, online e disconnected;

– Permite downloads parciais de objectos MIME;

– Associa estados a mensagens no servidor (lida/não lida/respondida/etc);

– Permite operações do lado do servidor (pesquisas, etc)

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Servidores de Correio Electrónico
• Configuração de um servidor de e-mail (Linux)
– No campo do transporte e encaminhamento de mensagens existem vários
programas, dos quais se destacam o sendmail, Smail e Qmail. O sendmail é um dos
mais usados na Internet.
– O sendmail normalmente é usado na versão para Linux. Os principais ficheiros de
configuração são:

/etc/sendmail.cf Ficheiro de configuração principal (muito complexo).

/etc/aliases Endereços alternativos, listas de mail e para


redireccionar endereços locais para outros servidores
/etc/mail/access Lista de computadores que podem usar este servidor para
enviar e-mail (relaying)
/etc/sendmail.mc Ficheiro master para criar o sendmail.cf de forma
automática
/etc/lib/sendmail-cf Directoria onde está o software para gerar o sendmail.cf
a partir do sendmail.mc

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Servidores de Correio Electrónico

• Configuração de um servidor de e-mail (Linux)


– As caixas de correio são ficheiros que guardam as mensagens de e-mail dos
utilizadores (directoria /var/spool/mail)
– No linux as caixas de correio são automaticamente criadas quando se
inserem novos utilizadores (adduser <login novo user>)
– A seguir à criação das caixas de correio, a gestão de aliases é a tarefa mais
importante de um administrador de e-mail. Os aliases são um mecanismo
para redireccionamento das mensagens. Um utilizador poderá possuir por
exemplo três endereços mail diferentes, sendo as mensagens
redireccionadas para a mesma mailbox.
– As mailing-lists servem para definir um endereço cujas mensagens são
redireccionadas para varios utilizadores (ex. allusers@est.ipcb.pt)
– O redireccionamento também pode ser feito com registos MX no servidor
DNS

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Servidores de Correio Electrónico
• Configuração de um servidor de e-mail (Linux)
# Basic system aliases -- these MUST be present.
MAILER-DAEMON: postmaster
postmaster: root
# General redirections for pseudo accounts.
bin: root
daemon: root
games: root
ingres: root
nobody: root
system: root
toor: root
uucp: root
# Well-known aliases.
manager: root
dumper: root
operator: root
# trap decode to catch security attacks
decode: root
# Person who should get root's mail
root: ci
Mailing-list
allusers: carlos, maria, sandra, luis, catarina
alexandre.fonte: adf, a.fonte@outroservidor.pt, alex.fonte@aindaoutro.com

Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares


Aplicações Internet
Servidores de Correio Electrónico
• Configuração de um servidor de e-mail (Linux)
• As mensagens podem ser enviadas directamente para o servidor destino, ou podem ser
encaminhadas por servidores intermédios (relays).

• Uma vantagem evidente é economia de largura de banda, pois provavelmente a ligação ao nosso
ISP é mais rápida que aos servidores destinatários. Assim, as mensagens são entregues ao relay que
depois se encarrega de as encaminhar para o destino.

• Para usar o servidor do ISP como relay deve-se acrescentar a linha seguinte no ficheiro
sendmail.mc e voltar a reconstruir o sendmail.cf
define(‘SMART_HOST’, ‘smtp.telepague.pt’)

• Devido aos spammers é cada vez menos habitual fazer relay, pois podem usar estes servidores não
sendo detectados. Para impedir que o nosso servidor seja usado por terceiros, deve configurar-se o
ficheiro /etc/mail/access de forma a limitar ao máxima os computadores que podem usar o serviço
de relay

Localhost RELAY
est.ipcb.pt RELAY
10.1. RELAY
212.55.157.1 RELAY
correio.est.ipcb.pt RELAY
193.137.234.1 RELAY
Spammer.com REJECT /estas msg são explicitamente rejeitadas mesmo
que se destinem a utilizadores locais
Autores: Alexandre Fonte, Osvaldo Santos, Vasco Soares

Das könnte Ihnen auch gefallen