header line
header line
...
header line
<--- (linha vazia separando cabeçalho e corpo)
body line
body line
body line
...
O exemplo a seguir ilustra um e-mail típico no formato em que ele é armazenado e transportado nos sistemas de e-mail:
Return-path:
Delivery-date: Sun, 15 Jun 2008 11:38:00 -0300
Received: from [64.12.138.210] (helo=imr-m08.mx.aol.com)
by ppgia.pucpr.br with esmtp (PPGIA PUCPR)
id 1K7tMl-00067J-55
for ; Sun, 15 Jun 2008 11:38:00 -0300
Received: from imo-d20.mx.aol.com (imo-d20.mail.aol.com [172.18.157.194])
by imr-m08.mx.aol.com (v107.10) with ESMTP id RELAYIN9-a4855293039a;
Sun, 15 Jun 2008 10:37:36 -0400
Received: from frank210@switched.com
by imo-d20.mx.aol.com (mail_out_v38_r9.4.) id t.ccf.32ac7044 (37097);
Sun, 15 Jun 2008 10:37:30 -0400 (EDT)
Received: from User ([82.128.35.119]) by cia-db07.mx.aol.com (v121.5)
with ESMTP id MAILCIADB077-90e948552919370;
Sun, 15 Jun 2008 10:37:25 -0400
Reply-To:
From: "Mark"
Date: Sun, 15 Jun 2008 16:37:24 +0200
MIME-Version: 1.0
Content-Type: text/plain;
charset="Windows-1251"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-AOL-IP: 172.18.157.194
To: maziero@ppgia.pucpr.br
Message-ID:
X-Spam-Flag:YES
X-Spam-Score: 5.1 (+++++)
X-Virus-Scanned: Verificado contra virus.
Subject: [***SPAM***] Second notice
THIS IS FOR YOUR ATTENTION.
We wish to notify you again that you were listed as a beneficiary to the total sum of
Ј10,600,000.00GBP (Ten Million Six Hundred Thousand British Pounds) in the codicil and
last testament of the deceased. (Name now withheld since this is our second letter to
you). We contacted you because you bear the surname identity and therefore can present
you as the beneficiary to the inheritance.
We therefore reckoned that you could receive these funds as you are qualified by your
name identity. All the legal papers will be processed in your acceptance. In your
acceptance of this deal, we request that you kindly forward to us your letter of
acceptance; your current telephone and fax numbers and a forwarding address to enable
us file necessary documents at our high court probate division for the release of this
sum of money.
Please call me on +447045769387 so that we can get this done immediately.
Kind regards,
Frank Mark.
Algumas observações devem ser feitas sobre este exemplo:
* A primeira linha vazia (em branco) separa o cabeçalho do corpo da mensagem; as demais linhas em branco fazem parte do corpo da mensagem.
* As linhas de cabeçalho têm sempre um formato "''Field: value''" ou "''Field: value; complement''".
* Linhas do cabeçalho muito longas podem ser quebradas em duas ou mais linhas; para indicar isso, as linhas de continuação são identadas em relação à primeira linha (como mostram as linhas "''Received''" e "''Content-type''";
* O formato e os campos das linhas de cabeçalho são padronizados pelas RFCs [[http://tools.ietf.org/html/rfc2821|2821]] e [[http://tools.ietf.org/html/rfc2822|2822]]; somente os campos que iniciam com "''X-''" (como "''X-AOL-IP:''") podem ser definidos ou ajustados por fabricantes ou softwares específicos.
Os principais campos do cabeçalho de um e-mail são:
^ Campo ^ Significado ^
| ''From'' | Endereço de origem |
| ''To'' | Endereço de destino principal|
| ''Cc'' | Enviar cópia da mensagem para este endereço (//Carbon-copy//) |
| ''Bcc'' | Enviar cópia da mensagem para este endereço (//Blind carbon-copy//), sem revelar quem são os outros destinários da mensagem; os destinatários receberão uma mensagem com a linha de cabeçalho "''Cc: undisclosed recipients''" |
| ''Reply-To'' | Endereço para onde enviar uma resposta |
| ''Return-path'' | Endereço do remetente informado pelo último MTA |
| ''Received'' | Indica um "salto" do e-mail entre servidores; as linhas ''Received'' são adicionadas ao cabeçalho do e-mail a cada operação de transferência entre MTAs ou MUA, de baixo para cima (ou seja, a primeira linha ''Received'' indica a última transferência realizada |
| ''Delivery-date'' | Data da entrega do e-mail na caixa de entrada do destinatário |
| ''Date'' | Data de envio do e-mail |
| ''Subject'' | Assunto do e-mail |
| ''Message-ID'' | Identificador do e-mail, gerado automaticamente pelo cliente onde o e-mail foi criado e enviado |
| ''MIME-Version'' | Informações sobre anexos (vide próxima seção) |
| ''Content-Type'' | Informações sobre anexos (vide próxima seção) |
| ''Content-Transfer-Encoding'' | Informações sobre anexos (vide próxima seção) |
| ''X-*'' | Campos de cabeçalho não normatizados, criados e mantidos por softwares específicos |
A visualização do formato nativo de um e-mail pode ser feita facilmente em um cliente de e-mail: basta localizar a opção "exibir código fonte" ou similar.
===== Anexos =====
A necessidade de enviar arquivos através do e-mail levou à definição do padrão MIME (Multipurpose Internet Mail Extensions), no início dos anos 90. Esse padrão da Internet é definido nas RFCs 2045 a 2049, com extensões em outras RFCs mais recentes. Basicamente, o padrão MIME permite codificar arquivos com qualquer conteúdo em formato ASCII puro, para ser enviados pelos protocolos de e-mail convencionais. Os principais aspectos cobertos pelo padrão são:
* codificação de textos com caracteres não-ASCII
* codificação de arquivos binários
* embutimento dos arquivos codificados no corpo dos e-mails
Pelas normas, o cabeçalho de um e-mail deve indicar que seu corpo está codificado em formato MIME. Cada seção de um e-mail em formato MIME pode conter um arquivo, um texto ou outro e-mail (que pode, por sua vez, também estar em formato MIME). Dessa forma, um e-mail MIME pode ter uma estrutura multi-nível, como indica o diagrama abaixo:
{{ :espec:mail-anexos.png |}}
Vejamos como ficaria um e-mail contendo um arquivo anexo ''envelope.gif'' {{:espec:mail-envelope.gif|}}:
From maziero@ppgia.pucpr.br Thu Jul 3 15:41:53 2003
Return-Path:
Delivered-To: maziero@ppgia.pucpr.br
Received: from alias.acm.org (alias.acm.org [199.222.69.90])
by hermes.ppgia.pucpr.br (Postfix) with ESMTP id A954E2B0048
for ; Thu, 3 Jul 2003 15:41:48 -0300 (BRT)
Received: from hermes.ppgia.pucpr.br ([200.192.112.141])
by alias.acm.org (ACM Email Forwarding Service) with ESMTP id COB73880
for ; Thu, 03 Jul 2003 14:41:43 -0400
Received: from floripa (ariadne.ppgia.pucpr.br [200.192.112.144])
by hermes.ppgia.pucpr.br (Postfix) with SMTP id 7E3D32B0048
for ; Thu, 3 Jul 2003 15:41:39 -0300 (BRT)
From: "Carlos Maziero"
To:
Subject: Um pequeno anexo
Date: Thu, 3 Jul 2003 15:43:51 -0300
Message-ID:
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_0004_01C34179.E6BD74D0"
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook IMO, Build 9.0.6604 (9.0.2911.0)
Importance: Normal
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
This is a multi-part message in MIME format.
------=_NextPart_000_0004_01C34179.E6BD74D0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Vamos enviar uma pequena imagem como teste...
Maziero
------=_NextPart_000_0004_01C34179.E6BD74D0
Content-Type: image/gif;
name="envelope.gif"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="envelope.gif"
R0lGODlhFAAUAOcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4O
Dg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEh
ISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0
NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdH
R0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpa
WltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1t
bW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CA
gIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOT
k5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaam
pqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5
ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zM
zM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f
3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy
8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///yH+Dk1hZGUgd2l0aCBHSU1Q
ACH5BAEKAAEALAAAAAAUABQAAAhuAAMIHEiwoMGDCBMqXMiwoUIAECNKnBhRIMR/GDNq1AgxUgAA
/0BuHAkgUsmPGEWOTBkppEeVKjeWZIkyY0yWNl9yjDkzZ82QKXHC1AnUZs+iJ0HeXKn05dKVIZNS
nCrRY4BIWLNq3ZrVodeFAQEAOw==
------=_NextPart_000_0004_01C34179.E6BD74D0--
É importante ressaltar que todo o trabalho de codificação/decodificação dos anexos é efetuado pelos clientes de e-mail (MUAs). Os servidores (MTAs, MDAs e MAAs) continuam a tratar os e-mails como textos no padrão ASCII.
Vejamos outro exemplo, com um e-mail no formato HTML:
From jamhour@ppgia.pucpr.br Thu Jul 3 13:53:27 2003
Return-Path:
Delivered-To: maziero@ppgia.pucpr.br
Received: from darkhal (ftp.ppgia.pucpr.br [200.192.112.144])
by hermes.ppgia.pucpr.br (Postfix) with ESMTP
id 88C932B0049; Thu, 3 Jul 2003 13:53:27 -0300 (BRT)
From: "Edgard Jamhour"
To: ,
Subject: Aula de Web
Date: Thu, 3 Jul 2003 13:56:43 -0300
Message-ID: <000d01c34184$14fd77f0$2d01200a@darkhal>
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_000E_01C3416A.EFB03FF0"
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook, Build 10.0.2627
Importance: Normal
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
Status: RO
X-Status:
X-Keywords:
X-UID: 43082
This is a multi-part message in MIME format.
------=_NextPart_000_000E_01C3416A.EFB03FF0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
A pedido dos senhores, estou mandando um email para confirmar a seguinte
altera=E7=E3o.
Hoje dia 03/06 (Quinta) o Maziero substituir=E1 o Scalabrin na aula de
Desenvolvimento Web.
No dia 16/06 (Quarta), o Scalabrin dar=E1 aula no lugar do Maziero,
reequilibrando o cronograma.
Edgard Jamhour,
PPGIA, PUC-PR - Pontif=EDcia Universidade Cat=F3lica do Paran=E1=20
Phone: +55 (41) 3301675 Phone: +55 (41) 3301669
http://www.ppgia.pucpr.br/~jamhour/
=20
------=_NextPart_000_000E_01C3416A.EFB03FF0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Aula de Web
A pedido dos senhores, estou mandando =
um email para confirmar a seguinte altera=E7=E3o.
Hoje dia 03/06 (Quinta) o Maziero =
substituir=E1 o Scalabrin na aula de Desenvolvimento Web.
No dia 16/06 (Quarta), o Scalabrin =
dar=E1 aula no lugar do Maziero, reequilibrando o cronograma.
Edgard Jamhour,
PPGIA, PUC-PR - Pontif=EDcia Universidade =
Cat=F3lica do Paran=E1
Phone: +55 (41) 3301675=A0 Phone: +55 =
(41) 3301669
http://www.ppgia.pucpr.br/~jamhour/<=
/A>
=A0
------=_NextPart_000_000E_01C3416A.EFB03FF0--
Muitos vírus e worms usam características (e bugs) do suporte MIME para se propagar. Veja um [[e-mail com o worm Klez.H]]. O que parece estranho nele?
===== O MTA Postfix =====
O servidor de e-mail **Postfix** é conhecido por sua robustez, segurança, eficiência e facilidade de operação. Ele vem sendo distribuído junto à maioria das distribuições Linux, embora também possa ser facilmente instalado em outros ambientes UNIX. Suas principais características são:
* Um processo //master// executa em modo privilegiado (usuário //root//), lançando filhos não-privilegiados (usuário postfix) para executar todas as tarefas necessárias ao envio, recepção, entrega e filtragem de e-mail.
* Cada função do MTA (receber e-mail via rede, receber e-mail local, entregar e-mail remoto, etc) é tratada por um processo filho distinto.
* Arquitetura construída visando escalabilidade e segurança.
Os principais arquivos/diretórios do Postfix em uma instalação Linux padrão são:
* ''/etc/postfix'' : diretório de configuração
* ''main.cf'' : arquivo principal de configuração
* ''access'' : controle de acesso
* ''aliases'' : aliases (sinônimos) de nomes locais
* ''/var/spool/mail'' : caixas de correio dos usuários locais
* ''/var/spool/postfix'' : diretório de operação dos daemons (ambiente restrito chroot)
* ''etc'' : arquivos de configuração das bibliotecas no ambiente restrito
* ''maildrop'', ''incoming'', ''deferred'', ... : diretórios contendo as filas de e-mails
Alguns utilitários normalmente oferecidos junto com o Postfix:
* ''sendmail'' : implementa a interface do sendmail (para compatibilidade com softwares mais antigos)
* ''postqueue'' : gerencia as filas de e-mails.
* ''postsuper'' : operações de manutenção sobre as filas de e-mail.