La capa de Aplicación 1 Correo electrónico (e-mail) Introducción Protocolo de envío Formato del mensaje MIME Lectura final 2
Cultura e-mail e e-business,, e-learninge learning,, e-baye bay,, e-commercee commerce,, e-e museum,, e-carde card,, e-magazinee magazine,, e-democracye democracy BTW, LOL, FYI, ROTFL, IMHO Smileys: :-)) ;-); ) :-(: ( : -(: ( :-o: o :- : :+) :-{) =):-) ) (-:( : :-(*): 8-) 8 ) }- } 3 Breve historia Inicialmente (> 20 años) mensajes muy sencillos Extensión del correo local 1982: ARPANET propone RFC 821 y 822 1984: CCITT X.400 -> > MOTIS (OSI, 1988) 1990: Éxito RFCs vs OSI (más complejo) 4
Características Uso universal, pasarelas con otros entornos Incluir ficheros (uso común) Libertad de uso, transmisión, respuesta Listas de distribución Prioridad, cifrado 5 Posibilidades de diseño Extremo a extremo Fiabilidad Filosofía TCP/IP Entrega inmediata Agentes intermedios Flexibilidad usuarios Interoperabilidad máquinas Usuarios ISPs 6
Componentes del e-maile Formato de envío del mensaje RFC 822 Protocolo de (re) envío del mensaje SMTP Lectura del correo POP3, IMAP, HTTP, localmente 7 Analogía 8
Arquitectura básica UA mailbox spool MTA UA mailbox spool MTA 9 Funcionalidades Componer mensajes Transferencia (MTA-MTA MTA,, UA-MTA) Aviso ante errores (informe entrega) Visualización Gestión mensajes Otras acciones (filtro spam,, virus, reenvío ) 10
Caso más general UA mailbox spool mailbox spool UA MTA local MTA local MTA local spool MTA Internet MTA spool 11 El MTA Local POP3 IMAP mailbox SMTP SMTP spool 12
Las direcciones de correo parte-local @ nombre-dominio P.ej.:.: comer%purdue.edu@relay.cs.net P.ej: pablo@it.uc3m.es.es alias correo ( posibles bucles!) Listas distribución 13 RFC 821 y 922 RFC 822 Formato de los mensajes para su envío No necesariamente para almacenar RFC 821 (SMTP) Protocolo de envío (en principio) No afecta al mensaje En realidad, añade inteligencia: log de gw atravesados, tratamiento direcciones 14
SMTP Conexión TCP, puerto 25 Modelo Cliente / Servidor (comando TURN) Pocos comandos Muchas respuestas US ASCII, 7 bits Evita complejidad (ntoh( ntoh, hton ) Facilita depuración 15 Ejemplo SMTP (I) bash-2.04$ telnet it.uc3m.es 25 Trying 163.117.139.31... Connected to it.uc3m.es. Escape character is '^]'. 220 arpa.it.uc3m.es ESMTP Sendmail 8.9.3/8.9.3; Wed, 14 May 2003 12:08:20 +0200 HELO enjambre.it.uc3m.es 250 arpa.it.uc3m.es Hello enjambre.it.uc3m.es [163.117.140.72], pleased to meet you MAIL FROM: pablo@it.uc3m.es 250 pablo@it.uc3m.es... Sender ok RCPT TO: pablo@it.uc3m.es 250 pablo@it.uc3m.es... Recipient ok DATA 354 Enter mail, end with "." on a line by itself Prueba de mail......(3 puntos)..(2 puntos). 250 MAA04304 Message accepted for delivery QUIT 221 arpa.it.uc3m.es closing connection Connection closed by foreign host. 16
Ejemplo SMTP (y II) Date: Wed, 14 May 2003 12:08:49 +0200 From: Pablo Serrano Yanez-Mingot <pablo@it.uc3m.es> To: undisclosed-recipients: ; Prueba de mail.....(3 puntos).(2 puntos) 17 Comandos SMTP Nombre HELO MAIL RCPT DATA RSET NOOP Descripción Identificación cliente Origen del correo Destino(s) del correo Transferencia del correo Cancela la transacción No operation QUIT Cerrar la conexión TCP 18
Comandos opcionales SMTP Nombre SEND SOML SAML VRFY EXPN HELP Descripción Envío del mail al terminal de usuario Al terminal si es posible; si no, al mailbox Al terminal y al mailbox Confirmación nombre usuario Miembros lista de correo Ayuda de comandos TURN Cambio de función de los actores 19 Respuestas SMTP (I) Positive Completion Reply 211 System status, or system help reply 214 Help message 220 <domain> Service ready 221 <domain> Service closing transmission channel 250 Requested mail action okay, completed 251 User not local; will forward to <forward-path> 20
Respuestas SMTP (II) Positive Intermediate Reply 354 Start mail input; end with <CRLF>.<CRLF> Transient Negative Completion Reply 421 <domain> Service not available, closing transmission channel 450 Requested mail action not taken: mailbox unavailable [E.g., mailbox busy] 451 Requested action aborted: error in processing 452 Requested action not taken: insufficient system storage 21 Respuestas SMTP (y III) Permanent Negative Completion Reply 500 Syntax error, command unrecognized 501 Syntax error in parameters or arguments 502 Command not implemented 503 Bad sequence of commands 504 Command parameter not implemented 550 Requested action not taken: mailbox unavailable [E.g., mailbox not found, no access] 551 User not local; please try <forward-path> 552 Requested mail action aborted: exceeded storage allocation 553 Requested action not taken: mailbox name not allowed [E.g., mailbox syntax incorrect] 554 Transaction failed 22
Otro ejemplo SMTP HELO enjambre.it.uc3m.es 250 arpa.it.uc3m.es Hello enjambre.it.uc3m.es [163.117.140.72], pleased to meet you SEND 500 Command unrecognized: "SEND" SOML 500 Command unrecognized: "SOML" SAML 500 Command unrecognized: "SAML" VRFY pablo 250 <pablo@arpa.it.uc3m.es> TURN 500 Command unrecognized: "TURN" HELP VRFY 214-VRFY <recipient> 214- Verify an address. If you want to see what it aliases 214- to, use EXPN instead. 214 End of HELP info Respuesta múltiple: EXPN guru 250-<guru@oboe.it.uc3m.es> Última línea, sin guión 250 <goyo@varpa.it.uc3m.es> 23 ESMTP Algunos problemas RFC 821 Mensajes > 64 KB Timers!= en cliente y servidor Mailstorms, con listas ESMTP RFC 1425 Compatible hacia atrás 24
Ejemplo ESMPT EHLO enjambre 250-arpa.it.uc3m.es Hello enjambre.it.uc3m.es [163.117.140.72], pleased to meet you 250-EXPN 250-VERB 250-8BITMIME 250-SIZE 10000000 250-DSN 250-ONEX 250-ETRN 250-XUSR 250 HELP 25 RFC 822 Formato de envío de mensajes Cabeceras <CR> <LF> Cuerpo También NVT ASCII, líneas < 1000 bytes Content = Header + Body (DATA) 26
Cabeceras 822 (I) Cabecera To: Cc: Bcc: From: Sender: Received: Return-Path: Significado Dirección de correo del destinatario principal Dirección de correo de la persona a quien se dirige una copia Dirección de correo de la persona a quien se dirige una copia secreta Persona que creó el mensaje Dirección de correo del verdadero remitente Línea añadida por cada agente de correo a lo largo de la ruta Se puede usar para identificar un camino de vuelta hacia el remitente RFC 822 contempla el uso del prefijo Resent- en caso de reexpediciones (Resent-To, Resent-From, etc.) RFC 822 permite definir nuevos campos pero obliga a usar el prefijo X- 27 Cabeceras 822 (y II) Cabecera Date: Reply-To: Message-Id: In-Reply-To: References: Keywords: Subject: Significado Fecha y hora en la que se envió el mensaje Dirección de correo a quien se deben enviar las respuestas Número único para referenciar al mensaje Message-Id del mensaje al que este responde Otros Message-Id de mensajes con relevancia en el tema tratado Palabras clave del mensaje escogidas por el usuario Breve resumen del mensaje que se puede mostrar en una línea 28
Ejemplo 822 Return-Path: <pablo@it.uc3m.es> Received: from arpa.it.uc3m.es (root@arpa.it.uc3m.es [163.117.139.120]) by varpa.it.uc3m.es (8.9.3/8.9.3/Debian 8.9.3-21) with ESMTP id MAA16837 for <pablo@varpa.it.uc3m.es>; Wed, 14 May 2003 12:09:20 +0200 Received: from enjambre.it.uc3m.es (enjambre.it.uc3m.es [163.117.140.72]) by arpa.it.uc3m.es (8.9.3/8.9.3) with SMTP id MAA04304 for pablo@it.uc3m.es; Wed, 14 May 2003 12:08:49 +0200 Date: Wed, 14 May 2003 12:08:49 +0200 From: Pablo Serrano Yanez-Mingot <pablo@it.uc3m.es> Message-Id: <200305141008.MAA04304@arpa.it.uc3m.es> To: undisclosed-recipients:; X-Spam-Status: No, hits=-147.7 required=6.0 tests=from_local,undisc_recips,subj_missing,user_in_whitelist,awl version=2.31 X-Spam-Level: X-UIDL: 9]>"!U~H"!opU"!-XB!! Prueba de mail.....(3 puntos).(2 puntos) 29 MIME Éxito del e-mail. Surgen nuevas necesidades: Mensajes en distintos alfabetos Soporte a los nuevos formatos multimedia (imágenes, voz, vídeo) MIME: Multipurpose Internet Mail Extensions Publicada en la RFC 1341, actualizada en la RFC 1521 Compatible hacia atrás (con RFC 822) 30