GNU/Linux >> Tutoriales Linux >  >> Linux

Comprender cómo funciona un sistema de correo electrónico

El correo electrónico se ha convertido en una herramienta de comunicación extremadamente popular. Una sólida comprensión del concepto del sistema de correo electrónico ayuda a los administradores del sistema a investigar varios tipos de problemas con el sistema de correo electrónico.

1. Cómo viaja un correo electrónico

El siguiente diagrama muestra una secuencia típica de eventos que tiene lugar cuando Alice redacta un mensaje utilizando su agente de usuario de correo (MUA). Ella ingresa o selecciona de una libreta de direcciones, la dirección de correo electrónico de su corresponsal. Luego envía el correo electrónico.

  1. El MUA de Alice formatea el mensaje en formato de correo electrónico de Internet y utiliza el Protocolo simple de transferencia de correo (SMTP) para enviar el mensaje al agente de transferencia de correo (MTA) local, en este caso, smtp.a.org, administrado por Proveedor de servicios de Internet (ISP) de Alice.
  2. El MTA busca la dirección de destino provista en el protocolo SMTP (no en el encabezado del mensaje), en este caso, [email protected]. Una dirección de correo electrónico de Internet es una cadena con el formato [email protected], que se conoce como dirección de dominio totalmente calificada (FQDA). La parte anterior al signo @ es la parte local de la dirección, a menudo el nombre de usuario del destinatario, y la parte posterior al signo @ es un nombre de dominio. El MTA busca este nombre de dominio en el Sistema de nombres de dominio para encontrar los servidores de intercambio de correo que aceptan mensajes para ese dominio.
  3. El servidor DNS para el dominio b.org, ns.b.org, responde con un registro MX que enumera los servidores de intercambio de correo para ese dominio, en este caso mx.b.org, un servidor administrado por el ISP de Bob.
  4. smtp.a.org envía el mensaje a mx.b.org mediante SMTP, que lo envía al buzón del usuario bob.
  5. Bob presiona el botón "recibir correo" en su MUA, que recoge el mensaje usando el Protocolo de oficina postal (POP3) o usando el Protocolo de acceso a mensajes de Internet (IMAP).

2. Formato estándar de correo electrónico

Un mensaje consta de campos de encabezado y, opcionalmente, un cuerpo. Cada campo de encabezado se puede ver como una sola línea lógica de caracteres ASCII, que comprende un nombre de campo y un cuerpo de campo. La porción de cuerpo de campo se puede dividir en varios líneas. La estructura de los campos de encabezado puede verse como compuesta por un nombre de campo seguido de dos puntos (“: “), seguido de un cuerpo de campo y terminado por un retorno de carro/avance de línea.

El nombre del campo debe estar compuesto de caracteres ASCII imprimibles (es decir, caracteres que tienen valores entre 33 y 126, decimal, excepto dos puntos). El cuerpo del campo puede contener cualquier carácter ASCII, excepto CR o LF. (Si bien CR y/o LF pueden estar presentes en el texto real, se eliminan al desplegar el campo).

Mínimo requerido

Date: 26 Aug 76 1429 EDT       Date: 26 Aug 76 1429 EDT
From: [email protected]    or   From: [email protected]
Bcc:                             To: [email protected]

Tenga en cuenta que el campo "CCO" puede estar vacío, mientras que el campo "Para" debe tener al menos una dirección.

Algunos campos comunes

1. Recibido

Es un campo de rastro. Es útil para desarrolladores y soporte. Cada servicio de transporte que retransmite el mensaje añade una copia de este campo. La información en el campo puede ser bastante útil para rastrear problemas de transporte.

Received: from agminet03.b.org (agminet03.b.org [192.168.10.1])
	by gw2.b.org(Switch-3.2.0/Switch-3.2.0) with ESMTP id m3A7ZtIj030617
	for [[email protected]]; Thu, 10 Apr 2008 01:35:55 -0600

2. Desde

"De" es el campo de origen. Este campo contiene la identidad de la(s) persona(s) que desea(n) que se envíe este mensaje. El proceso de creación de mensajes debe predeterminar este campo para que sea una única dirección de máquina autenticada, que indique el AGENTE (persona, sistema o proceso) que ingresa el mensaje. Si esto no se hace, el campo "Remitente" DEBE estar presente. Si el campo "De" está predeterminado de esta manera, el campo "Remitente" es opcional y es redundante con el campo "De". En todos los casos, las direcciones en el campo "De" deben ser utilizables por máquina (addr-specs) y no pueden contener listas con nombres (grupos).

From: Alice [[email protected]]

3. a

“Para” es un campo receptor. Este campo contiene la identidad de los destinatarios principales del mensaje.

To: [[email protected]]

4. ID de mensaje

“ID DE MENSAJE” es un campo de referencia. Este campo contiene un identificador único (la unidad de dirección de la parte local) que hace referencia a ESTA versión de ESTE mensaje. La unicidad del identificador del mensaje está garantizada por el host que lo genera. Este identificador está destinado a ser legible por máquina y no necesariamente significativo para los humanos. Un identificador de mensaje pertenece exactamente a una instancia de un mensaje en particular; las revisiones posteriores del mensaje deben recibir nuevos identificadores de mensaje.

Message-ID: [[email protected]]

5. Asunto

Esto tiene la intención de proporcionar un resumen o indicar la naturaleza del mensaje.

Subject: Hello

Cuerpo

Se puede usar un campo de encabezado de tipo de contenido para especificar el tipo y el subtipo de datos en el cuerpo de un mensaje y para especificar completamente la representación nativa (codificación) de dichos datos.

1. Texto

El cuerpo es simplemente una secuencia de líneas que contienen caracteres ASCII. Está separado de los encabezados por una línea nula (es decir, una línea sin nada que precede al CRLF).

Content-Type: text/plain

2. MIME:extensiones de correo de Internet multipropósito

MIME ha sido cuidadosamente diseñado como un mecanismo extensible. Describe el campo de encabezado MIME-Version, el campo de encabezado Content-Type, el campo de encabezado Content-Transfer-Encoding. Por ejemplo:

Content-Type: multipart/mixed;
boundary="------------040406000905020906030306"
--_77c1a01c-9699-4678-a620-eccfaf27c4c8_
Content-Type: text/plain
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="file.txt"

3. SMTP:Protocolo simple de transferencia de correo

Protocolo simple de transferencia de correo (SMTP), un protocolo utilizado para intercambiar correo electrónico entre puntos en Internet. El objetivo del Protocolo simple de transferencia de correo (SMTP) es transferir correo de manera confiable y eficiente.

El modelo SMTP

El diseño SMTP se basa en el siguiente modelo de comunicación:como resultado de una solicitud de correo del usuario, el remitente-SMTP establece un canal de transmisión bidireccional a un receptor-SMTP. El receptor-SMTP puede ser el destino final o un intermediario. Los comandos SMTP son generados por el SMTP del remitente y enviados al SMTP del receptor. Las respuestas SMTP se envían desde el SMTP del receptor al SMTP del remitente en respuesta a los comandos.

Ejemplo de transacción de correo SMTP

Hay tres pasos para las transacciones de correo SMTP. La transacción se inicia con un comando MAIL que proporciona la identificación del remitente. Una serie de uno o más comandos RCPT sigue dando información al receptor. Luego, un comando DATA proporciona los datos del correo. Y finalmente, el indicador de datos de fin de correo confirma la transacción.

C: #telnet smtp.a.org 25
C: Trying 192.168.**.**...
C: Connected to bigip-adc-mail-10g.a.org (192.168.**.**).
Escape character is '^]'.
C: 220 server ready. Unauthorized Access Prohibited.
S: EHLO test1.a.org
S: 250-bigip-adc-mail-10g.a.org Hello test1.a.org, pleased to meet you
S: 250-8BITMIME
S: 250-SIZE 15728640
S: 250-DSN
S: 250-ENHANCEDSTATUSCODES
S: 250-STARTTLS
S: 250-XAUTH
S: 250 HELP
C: MAIL FROM:
S: 250 2.1.0 Sender OK
C: RCPT TO:
S: 250 2.1.5 Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Subject: email title ..content
C: ....
C: . 

S: 250 2.6.0 Message accepted for delivery
C: quit
S: 221 2.0.0  bigip-adc-mail-10g.a.org Closing connection
S: Connection closed by foreign host.

4. POP3:Protocolo de oficina de correos versión 3

POP3 se utiliza para leer el correo electrónico. Con POP3, su correo se guarda en un solo buzón en el servidor. Cuando lee su correo, se descarga inmediatamente a su computadora y, excepto cuando se haya arreglado previamente, ya no se mantiene en el servidor.

Inicialmente, el host del servidor inicia el servicio POP3 escuchando en el puerto TCP 110. Cuando un cliente desea hacer uso del servicio, establece una conexión TCP con el servidor. Cuando se establece la conexión, el servidor POP3 envía un saludo. El cliente y el servidor POP3 luego intercambian comandos y respuestas (respectivamente) hasta que la conexión se cierra o aborta.

El protocolo POP3 se utiliza para permitir que una estación de trabajo recupere el correo que el servidor tiene para ella.

Ejemplo de sesión POP3

S: [wait for connection on TCP port 110]
C: [open connection]
S:    +OK POP3 server ready [[email protected]]
C: USER Alice
S: +OK Alice is a real hoopy frood
C: PASS secret
S: +OK Alice's maildrop has 2 messages (320 octets)
C:    STAT
S:    +OK 2 320
C:    LIST
S:    +OK 2 messages (320 octets)
S:    1 120
S:    2 200
S:    .
C:    RETR 1
S:    +OK 120 octets
S:    [the POP3 server sends message 1]
S:    .
C:    DELE 1
S:    +OK message 1 deleted
C:    RETR 2
S:    +OK 200 octets
S:    [the POP3 server sends message 2]
S:    .
C:    DELE 2
S:    +OK message 2 deleted
C:    QUIT
S:    +OK dewey POP3 server signing off (maildrop empty)
C:  [close connection]
S:  [wait for next connection]

5. IMAP:Protocolo de acceso a mensajes de Internet

IMAP (Protocolo de acceso a mensajes de Internet) es un protocolo estándar para acceder al correo electrónico desde su servidor local. IMAP es un protocolo cliente/servidor en el que su servidor de Internet recibe y retiene el correo electrónico. Usted (o su cliente de correo electrónico) puede ver solo el encabezado y el remitente de la carta y luego decidir si desea descargar el correo. También puede crear y manipular múltiples carpetas o buzones en el servidor, eliminar mensajes o buscar ciertas partes o una nota completa. IMAP requiere acceso continuo al servidor durante el tiempo que esté trabajando con su correo.

IMAP se puede considerar como un servidor de archivos remoto. POP3 se puede considerar como un "almacenar y reenviar ” servicio.

una breve comparación de POP3 e IMAP

Ventajas del protocolo POP3

  • Protocolo más simple; más fácil de implementar.
  • Más software de cliente disponible actualmente.

Ventajas del protocolo IMAP

  • Puede manipular indicadores de estado de mensajes persistentes.
  • Puede almacenar mensajes y recuperarlos.
  • Puede acceder y administrar múltiples buzones.
  • Puede admitir actualizaciones simultáneas y acceso a buzones de correo compartidos.
  • Adecuado para acceder a datos que no son de correo electrónico; por ejemplo, NetNews, documentos.
  • También puede usar el paradigma fuera de línea, para un tiempo mínimo de conexión y uso de disco.
  • Protocolo complementario definido para la gestión de configuración de usuarios (IMSP).
  • Construcciones para permitir la optimización del rendimiento en línea, especialmente en enlaces de baja velocidad.

Ejemplo de conexión IMAP4

La siguiente es una transcripción de una conexión IMAP4rev1. Una línea larga en esta muestra está rota para mayor claridad editorial.

C: telnet imap.a.org 143
S: Trying 192.168.***.***...
S: Connected to imap.a.org (192.168.***.***).
Escape character is '^]'.
S:   * OK IMAP4rev1 Service Ready
C:   a001 login mrc secret
S:   a001 OK LOGIN completed
C:   a002 select inbox
S:   * 18 EXISTS
S:   * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
S:   * 2 RECENT
S:   * OK [UNSEEN 17] Message 17 is the first unseen message
S:   * OK [UIDVALIDITY 3857529045] UIDs valid

S:   a002 OK [READ-WRITE] SELECT completed
C:   a003 fetch 12 full
S:   * 12 FETCH (FLAGS (\Seen) INTERNALDATE "17-Jul-1996 02:44:25 -0700"
      RFC822.SIZE 4286 ENVELOPE ("Wed, 17 Jul 1996 02:23:25 -0700 (PDT)"
      "IMAP4rev1 WG mtg summary and minutes"
      (("Terry Gray" NIL "gray" "cac.washington.edu"))
      (("Terry Gray" NIL "gray" "cac.washington.edu"))
      (("Terry Gray" NIL "gray" "cac.washington.edu"))
      ((NIL NIL "imap" "cac.washington.edu"))
      ((NIL NIL "minutes" "CNRI.Reston.VA.US")
      ("John Klensin" NIL "KLENSIN" "INFOODS.MIT.EDU")) NIL NIL
      "[[email protected]]")
       BODY ("TEXT" "PLAIN" ("CHARSET" "US-ASCII") NIL NIL "7BIT" 3028 92))
S:    a003 OK FETCH completed
C:    a004 fetch 12 body[header]
S:    * 12 FETCH (BODY[HEADER] {350}
S:    Date: Wed, 17 Jul 1996 02:23:25 -0700 (PDT)
S:    From: Terry Gray [[email protected]]
S:    Subject: IMAP4rev1 WG mtg summary and minutes
S:    To: [email protected]
S:    cc: [email protected], John Klensin [[email protected]]
S:    Message-Id: [[email protected]]
S:    MIME-Version: 1.0
S:    Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
S:
S:    )
S:    a004 OK FETCH completed
C:    a005 store 12 +flags \deleted
S:    * 12 FETCH (FLAGS (\Seen \Deleted))
S:    a005 OK +FLAGS completed
C:    a006 logout
S:    * BYE IMAP4rev1 server terminating connection
S:    a006 OK LOGOUT completed


Linux
  1. Cómo funciona Hexdump

  2. Cómo cambiar el nombre de host en Linux

  3. ¿Cómo personalizar una configuración regional del sistema?

  4. Comprender las plantillas de rsyslog

  5. ¿Cómo imprimo un mensaje a stderr en Go?

Cómo configurar el correo electrónico de Atlantic.Net

Cómo instalar Cockpit en Debian 10

Cómo actualizar Ubuntu 18.04 a Ubuntu 20.04

Cómo instalar Nginx en CentOS 8

Cómo grabar audio en Ubuntu 20.04

Cómo montar NFS en Debian 11