Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
espec:servico_de_e-mail [2008/06/19 18:39] – maziero | espec:servico_de_e-mail [2011/09/06 18:28] (atual) – maziero | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== Serviços de e-mail ====== | ||
+ | |||
+ | O objetivo desta aula é compreender melhor os serviços oferecidos pelo sistema operacional para o suporte de e-mail, através de experiências utilizando clientes e servidores de e-mail. | ||
+ | |||
+ | ===== Infraestrutura ===== | ||
+ | |||
+ | A infra-estrutura de transporte de e-mail na Internet funciona através da interação entre diferentes agentes, como nos mostra a figura a seguir: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Os principais elementos desse trajeto são: | ||
+ | |||
+ | * **MUA** - //Mail User Agent//: o programa que o usuário acessa para compor seu e-mail. Exemplo: Outlook, Netscape, Eudora, Pine, Kmail, etc. | ||
+ | * **MTA** - //Mail Transport Agent//: recebe o e-mail do MUA e o envia a outros MTA, para que seja entregue ao destinatário. O principal MTA em UNIX é o [[http:// | ||
+ | * **MDA** - //Mail Delivery Agent//: recebe o e-mail do MTA e o deposita na caixa de correio do usuário. O MDA default do Linux é o // | ||
+ | * **MAA** - //Mail Access Agent//: permite ao MUA o acesso aos e-mails que estão na caixa de correio do usuário. Na prática, esta função é exercida pelos servidores POP3 e/ou IMAP. | ||
+ | |||
+ | ===== Protocolos ===== | ||
+ | |||
+ | O serviço de e-mail usa vários protocolos para o transporte das mensagens entre remetentes e destinatários. O protocolo **SMTP** - //Simple Mail Transfer Protocol// é o protocolo responsável pelo envio do e-mail do cliente (MUA) ao servidor (MTA) e deste para outros servidores, até chegar ao servidor de destino. | ||
+ | |||
+ | Para consultar os e-mails armazenados no servidor, o cliente (MUA) utiliza os protocolos **POP3** (// | ||
+ | |||
+ | * POP3: | ||
+ | * Usa a porta 110/TCP ou 995/TCP (versão segura POP3S). | ||
+ | * Considera apenas uma pasta no servidor (a pasta INBOX). | ||
+ | * Por default descarrega as mensagens do servidor no cliente. | ||
+ | * não permite carregar mensagens de volta no servidor (// | ||
+ | * IMAP: | ||
+ | * Usa a porta 143/TCP ou 993/TCP (versão segura IMAPS) | ||
+ | * Pode manter diversas pastas no servidor, além da INBOX. | ||
+ | * Por default mantém as mensagens no servidor. | ||
+ | * Pode movimentar mensagens em ambas as direções (entre pastas no cliente e no servidor). | ||
+ | |||
+ | Normalmente o uso de POP3 é mais indicado quando os usuários são estáticos, ou seja, cada um possui seu computador e só acessa seu e-mail a partir dele. POP3 é um protocolo leve e que não mantém conexão constante com o servidor. | ||
+ | |||
+ | O uso de IMAP é indicado quando os usuários são " | ||
+ | |||
+ | ===== O Servidor de e-mail ===== | ||
+ | |||
+ | Os servidores de e-mail (MTAs) funcionam segundo um princípio "store and forward" | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | O //daemon// '' | ||
+ | |||
+ | Os principais arquivos e diretórios de um sistema de e-mail SMTP UNIX típico são: | ||
+ | |||
+ | * ''/ | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | |||
+ | O MDA é o processo que efetua a entrega dos e-mails aos usuários locais. No Linux normalmente é usado o [[http:// | ||
+ | |||
+ | * redireção automática, | ||
+ | * separar os e-mails recebidos por folders, de acordo com suas caracteristicas. | ||
+ | * filtrar e-mails com virus ou outros problemas. | ||
+ | |||
+ | A configuração do // | ||
+ | |||
+ | ===== Formato do e-mail ===== | ||
+ | |||
+ | Um e-mail é visto pelos processos e protocolos como um texto em formato ASCII padrão (texto puro, sem acentos, figuras ou caracteres de controle). Cada e-mail é composto de duas seções principais: | ||
+ | |||
+ | * o **cabeçalho** (// | ||
+ | * o **corpo** (//body//), que contém a mensagem propriamente dita, eventualmente com anexos. | ||
+ | |||
+ | O cabeçalho é separado do corpo do e-mail por uma linha vazia (equivalente a " | ||
+ | |||
+ | < | ||
+ | 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: | ||
+ | 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 < | ||
+ | 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: " | ||
+ | Date: Sun, 15 Jun 2008 16:37:24 +0200 | ||
+ | MIME-Version: | ||
+ | Content-Type: | ||
+ | charset=" | ||
+ | Content-Transfer-Encoding: | ||
+ | X-Priority: 3 | ||
+ | X-MSMail-Priority: | ||
+ | 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: | ||
+ | X-Spam-Score: | ||
+ | X-Virus-Scanned: | ||
+ | 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, | ||
+ | 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 "'' | ||
+ | * 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 "'' | ||
+ | * O formato e os campos das linhas de cabeçalho são padronizados pelas RFCs [[http:// | ||
+ | |||
+ | Os principais campos do cabeçalho de um e-mail são: | ||
+ | |||
+ | ^ Campo ^ Significado ^ | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | 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 " | ||
+ | |||
+ | ===== Anexos ===== | ||
+ | |||
+ | A necessidade de enviar arquivos através do e-mail levou à definição do padrão MIME (Multipurpose Internet Mail Extensions), | ||
+ | |||
+ | * 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, | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Vejamos como ficaria um e-mail contendo um arquivo anexo '' | ||
+ | |||
+ | < | ||
+ | From maziero@ppgia.pucpr.br Thu Jul 3 15:41:53 2003 | ||
+ | Return-Path: | ||
+ | Delivered-To: | ||
+ | Received: from alias.acm.org (alias.acm.org [199.222.69.90]) | ||
+ | by hermes.ppgia.pucpr.br (Postfix) with ESMTP id A954E2B0048 | ||
+ | for < | ||
+ | Received: from hermes.ppgia.pucpr.br ([200.192.112.141]) | ||
+ | by alias.acm.org (ACM Email Forwarding Service) with ESMTP id COB73880 | ||
+ | for < | ||
+ | Received: from floripa (ariadne.ppgia.pucpr.br [200.192.112.144]) | ||
+ | by hermes.ppgia.pucpr.br (Postfix) with SMTP id 7E3D32B0048 | ||
+ | for < | ||
+ | From: " | ||
+ | To: < | ||
+ | Subject: Um pequeno anexo | ||
+ | Date: Thu, 3 Jul 2003 15:43:51 -0300 | ||
+ | Message-ID: < | ||
+ | MIME-Version: | ||
+ | Content-Type: | ||
+ | boundary=" | ||
+ | X-Priority: 3 (Normal) | ||
+ | X-MSMail-Priority: | ||
+ | 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: | ||
+ | charset=" | ||
+ | Content-Transfer-Encoding: | ||
+ | |||
+ | Vamos enviar uma pequena imagem como teste... | ||
+ | |||
+ | Maziero | ||
+ | |||
+ | ------=_NextPart_000_0004_01C34179.E6BD74D0 | ||
+ | Content-Type: | ||
+ | name=" | ||
+ | Content-Transfer-Encoding: | ||
+ | Content-Disposition: | ||
+ | filename=" | ||
+ | |||
+ | R0lGODlhFAAUAOcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4O | ||
+ | Dg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEh | ||
+ | ISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0 | ||
+ | NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/ | ||
+ | R0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpa | ||
+ | WltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1t | ||
+ | bW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/ | ||
+ | gIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOT | ||
+ | k5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaam | ||
+ | pqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5 | ||
+ | ubq6uru7u7y8vL29vb6+vr+/ | ||
+ | zM3Nzc7Ozs/ | ||
+ | 3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/ | ||
+ | 8vPz8/ | ||
+ | ACH5BAEKAAEALAAAAAAUABQAAAhuAAMIHEiwoMGDCBMqXMiwoUIAECNKnBhRIMR/ | ||
+ | / | ||
+ | nCrRY4BIWLNq3ZrVodeFAQEAOw== | ||
+ | |||
+ | ------=_NextPart_000_0004_01C34179.E6BD74D0-- | ||
+ | </ | ||
+ | |||
+ | É importante ressaltar que todo o trabalho de codificação/ | ||
+ | |||
+ | 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: | ||
+ | Received: from darkhal (ftp.ppgia.pucpr.br [200.192.112.144]) | ||
+ | by hermes.ppgia.pucpr.br (Postfix) with ESMTP | ||
+ | id 88C932B0049; | ||
+ | From: " | ||
+ | To: < | ||
+ | Subject: Aula de Web | ||
+ | Date: Thu, 3 Jul 2003 13:56:43 -0300 | ||
+ | Message-ID: < | ||
+ | MIME-Version: | ||
+ | Content-Type: | ||
+ | boundary=" | ||
+ | X-Priority: 3 (Normal) | ||
+ | X-MSMail-Priority: | ||
+ | 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: | ||
+ | charset=" | ||
+ | Content-Transfer-Encoding: | ||
+ | |||
+ | 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:// | ||
+ | =20 | ||
+ | |||
+ | ------=_NextPart_000_000E_01C3416A.EFB03FF0 | ||
+ | Content-Type: | ||
+ | charset=" | ||
+ | Content-Transfer-Encoding: | ||
+ | |||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <META HTTP-EQUIV=3D" | ||
+ | charset=3Diso-8859-1"> | ||
+ | <META NAME=3D" | ||
+ | 6.0.4630.0"> | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | |||
+ | < | ||
+ | um email para confirmar a seguinte altera=E7=E3o.</ | ||
+ | |||
+ | < | ||
+ | substituir=E1 o Scalabrin na aula de Desenvolvimento Web.</ | ||
+ | |||
+ | < | ||
+ | dar=E1 aula no lugar do Maziero, reequilibrando o cronograma.</ | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | Cat=F3lica do Paran=E1</ | ||
+ | </ | ||
+ | (41) 3301669</ | ||
+ | |||
+ | < | ||
+ | COLOR=3D"# | ||
+ | FACE=3D" | ||
+ | / | ||
+ | |||
+ | < | ||
+ | </ | ||
+ | ------=_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/ | ||
+ | |||
+ | * ''/ | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Alguns utilitários normalmente oferecidos junto com o Postfix: | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||