Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Qué significa SMTP?

¿Qué significa SMTP?

El objetivo del Protocolo simple de transferencia de correo (SMTP) es entregar el correo de manera confiable y eficiente. Es independiente del subsistema de entrega y solo requiere un canal que pueda garantizar el orden de las unidades de datos de entrega. Los Apéndices A, B, C y D describen el uso de SMTP con diferentes servicios de transporte. Los términos utilizados en este documento también se definen en el Glosario.

Una característica importante de SMTP es que puede transmitir correos electrónicos durante la entrega. El servicio de entrega proporciona un entorno de comunicación entre procesos (IPCE). Este entorno puede incluir una red, varias redes o una subred de una. red. . Es importante comprender que los sistemas de entrega (o IPCE) no son uno a uno. Los procesos pueden comunicarse directamente con otros procesos a través del IPCE conocido. El correo es una aplicación o comunicación entre procesos. El correo se puede enviar a través de redes a través de procesos conectados a diferentes IPCE. Lo que es más especial es que los correos electrónicos se pueden transmitir a través de hosts en diferentes redes.

Es el protocolo de capa de aplicación principal para los sistemas de correo electrónico de Internet. Utiliza el confiable servicio de transmisión de datos proporcionado por TCP para transmitir mensajes de correo electrónico desde el servidor de correo del remitente al servidor de correo del destinatario. Como la mayoría de los protocolos de capa de aplicación, SMTP tiene dos extremos: un cliente que se ejecuta en el servidor de correo del remitente y un servidor que se ejecuta en el servidor de correo del destinatario. Los lados del cliente y del servidor de SMTP se ejecutan simultáneamente en cada servidor de correo. Cuando un servidor de correo envía mensajes de correo a otros servidores de correo, se ejecuta como un cliente SMTP. Cuando un servidor de correo recibe mensajes de correo de otros servidores de correo, se ejecuta como un servidor SMTP.

Existen muchas similitudes entre el protocolo SMTP y la etiqueta que las personas utilizan para las interacciones cara a cara. Primero, el cliente SMTP que se ejecuta en el servidor de correo emisor inicia el establecimiento de una conexión TCP con el puerto número 25 del servidor SMTP que se ejecuta en el servidor de correo receptor. Si el servidor de correo receptor no funciona actualmente, el cliente SMTP espera un período de tiempo antes de intentar establecer la conexión. Una vez establecida esta conexión, el cliente y el servidor SMTP primero realizan algunas operaciones de protocolo de enlace de la capa de aplicación. Así como las personas se presentan antes de cambiar de manos, los clientes y servidores SMTP se presentan antes de enviar información. Durante esta fase de protocolo de enlace SMTP, el cliente SMTP indica las direcciones de correo electrónico del remitente y del destinatario al servidor. Después de presentarse, el cliente envía un mensaje de correo electrónico. SMTP puede contar con el confiable servicio de transmisión de datos proporcionado por TCP para entregar el mensaje al servidor sin errores. Si el cliente tiene otros mensajes de correo electrónico para enviar al mismo servidor, repite el proceso anterior en la misma conexión TCP; de lo contrario, le indica a TCP que cierre la conexión; [1]

Editar este párrafo 2. Modelo SMTP

El diseño SMTP se basa en el siguiente modelo de comunicación: en respuesta a la solicitud del usuario por correo electrónico, se establece un canal de transmisión bidireccional entre los SMTP de envío y SMTP de recepción. El SMTP receptor puede ser el destinatario final o un transmisor intermedio. Los comandos SMTP son enviados por el SMTP emisor y recibidos por el SMTP receptor, mientras que las respuestas se envían a la inversa.

Una vez establecido el canal de transmisión, el remitente SMTP envía un comando MAIL para especificar el remitente del correo. Si

el destinatario SMTP puede recibir el correo electrónico, se devuelve una respuesta OK. Luego, el remitente SMTP emite el comando RCPT para confirmar si se ha recibido el correo electrónico. Si el receptor SMTP lo recibe, se devuelve una respuesta OK; si no se puede recibir, se emite una respuesta de rechazo (pero no finaliza toda la operación de correo electrónico) y ambas partes repetirán esto muchas veces. Cuando el destinatario reciba todos los correos electrónicos, recibirá una secuencia especial. Si el destinatario procesa correctamente los correos electrónicos, se devolverá una respuesta OK.

SMTP proporciona un mecanismo para entregar correos electrónicos si el destinatario y el remitente están conectados bajo el mismo servicio de entrega, el correo electrónico puede entregarse directamente desde el host del remitente al host del destinatario o, cuando los dos no lo están; en el mismo Cuando el servicio de entrega está habilitado, se entrega a través del servidor SMTP de retransmisión.

Para proporcionar capacidades de retransmisión al servidor SMTP, debe tener la dirección del host de destino final y el nombre del buzón.

El parámetro del comando MAIL es la ruta de respuesta, que especifica de dónde viene el correo, mientras que el parámetro del comando RCPT es la ruta de reenvío, que especifica adónde va el correo. La ruta de ida es la ruta de origen y la ruta de respuesta es la ruta de retorno (que se utiliza para devolver el correo cuando se produce un error).

Cuando se envía el mismo mensaje a diferentes destinatarios, SMTP se encuentra con el problema de enviar copias de los mismos datos a diferentes destinatarios. Los comandos y respuestas del correo electrónico tienen una sintaxis extraña y las respuestas también tienen un código numérico. . A continuación, se pueden ver ejemplos que utilizan comandos y respuestas reales. La orden y la respuesta completas se encuentran en la Sección 4.

Los comandos y las respuestas no distinguen entre mayúsculas y minúsculas, es decir, los comandos y las respuestas pueden estar en mayúsculas, minúsculas o una combinación de ambas, pero esto no necesariamente es cierto para los nombres de correo electrónico de los usuarios, porque hay El anfitrión distingue entre mayúsculas y minúsculas del nombre de usuario. De esta manera, la implementación SMTP mantiene el nombre del buzón del usuario como estaba inicialmente y el nombre del host no distingue entre mayúsculas y minúsculas.

Los comandos y las respuestas se componen del alfabeto ASCII. Cuando el servicio de transmisión proporciona un canal de transmisión de 8 bits, cada carácter de 7 bits se transmite correctamente y el bit más alto se completa con 0. Cuando se especifica un comando general o un formato de respuesta, los parámetros se representarán mediante algunas cadenas similares a las de un lenguaje, como "lt; stringgt;" o "lt; reverse-pathgt;" donde los corchetes angulares indican que se trata de un idioma similar. variables.

Editar este párrafo 3. Proceso SMTP

Esta sección proporciona algunos procesos en SMTP. La primera descripción es el proceso de envío básico (definido como la operación de envío). A continuación se describe el reenvío de correo, la confirmación de nombres de buzones y la ampliación de listas de correo, el envío a terminales y la apertura y cierre de intercambios. Al final de esta sección hay una descripción del dominio de correo de interrupción. Los ejemplos de esta sección son solo una parte de las secuencias de comando y respuesta. Consulte el Apéndice F para ver ejemplos completos.

3.1. CORREO

Hay tres pasos en la operación de envío SMTP. La operación comienza con el comando CORREO y proporciona la identificación del remitente. Siguen una serie o más comandos RCPT, que brindan información al destinatario, luego un comando DATOS que enumera el contenido del correo electrónico enviado y, finalmente, un indicador de contenido del mensaje que confirma la operación.

El primer paso del proceso es el comando MAIL, incluido el buzón de origen.

MAIL lt;SPgt; FROM: lt;reverse-pathgt;lt;CRLFgt;

Este comando le dice al receptor que se ha iniciado una nueva operación de envío, restablezca todas las tablas de estado y distrito de amortiguamiento. Proporciona la ruta inversa para que se devuelvan los mensajes de error. Si se acepta la solicitud, el destinatario devuelve una respuesta 250 OK. lt; reverse-pathgt;; no solo incluye el buzón, también incluye la ruta inversa del host y el buzón de origen. El primer host es el host que envía este comando.

El segundo paso del proceso es enviar el comando RCPT.

RCPT lt;SPgt; TO: lt;forward-pathgt; lt;CRLFgt;

Este comando proporciona la ruta de avance que identifica al receptor. Si se recibe el comando, el receptor regresa. una respuesta

250 ​​​​OK y almacene la ruta de avance. Si el destinatario es desconocido, el destinatario devolverá una respuesta de error 550. Este proceso puede repetirse varias veces.

lt; forward-pathgt;; no solo incluye el correo, es una tabla de enrutamiento de hosts y buzones de correo de destino. El primer host que contiene es el host que recibe el comando. El tercer paso del proceso es enviar el comando DATOS.

DATA lt;CRLFgt;

Si se recibe el comando, el destinatario devuelve una respuesta intermedia 354 y asume que las siguientes líneas son el contenido de la carta.

Cuando se recibe y almacena el final de la carta, el destinatario envía una respuesta 250 OK. Debido a que el mensaje se envía por el canal de entrega, se debe indicar el final del contenido del mensaje para que se pueda reiniciar la conversación de respuesta. SMTP indica el final del contenido del correo electrónico enviando solo un punto en la última línea. En el lado receptor, un proceso transparente para el usuario filtra este símbolo para no afectar los datos normales.

Nota: El contenido del correo electrónico incluye los siguientes consejos: Fecha, Asunto, Para, CC, De.

El indicador de contenido del mensaje confirma la operación del mensaje e informa al destinatario que los datos se pueden almacenar y reenviar. Si se recibe este comando, el receptor devuelve una respuesta 250 OK. El comando DATOS solo falla si la operación de correo no se completa o el origen no es válido.

El proceso descrito anteriormente es una operación de envío. Estos comandos sólo se pueden utilizar en el orden anterior. El siguiente ejemplo muestra el uso de estos comandos en una operación de envío.

Ejemplo de proceso SMTP Este ejemplo es donde Smith en el host Alpha..ARPA envía un correo electrónico a Jones, Green y Brown en el host Beta..ARPA. Se supone que el host Alpha está conectado directamente al host. Beta.

S: CORREO DE:lt;Smith@Alpha..ARPAgt;

R: 250 OK

S: RCPT A:lt;Jones@Beta. .ARPAgt;

R: 250 OK

S: RCPT TO:lt; Green@Beta..ARPAgt;

R: 550 No existe tal usuario aquí

S: RCPT A:lt;Brown@Beta..ARPAgt;

R: 250 OK

S: DATOS

R: 354 Iniciar entrada de correo; terminar conlt; CRLFgt;.lt; CRLFgt;

S: Bla, bla, bla...

S: ...y así sucesivamente

S: lt;CRLFgt;.lt;CRLFgt;

R: 250 OK

Esta carta fue recibida por las dos primeras personas, pero la tercera persona no tiene buzón en este anfitrión.

3.2. Reenvío

Los siguientes son algunos ejemplos en los que la dirección de destino en forward-pathgt es incorrecta, pero el destinatario conoce la dirección de destino correcta. En estos ejemplos, una de las siguientes respuestas (251, 551) debería permitir al remitente obtener la dirección correcta.

251: El usuario no es local; será reenviado a lt;forward-pathgt;;.

Esta respuesta significa que el SMTP receptor sabe que el buzón de correo del usuario está en otro host y significa que se utilizará la ruta de redirección correcta en el futuro. Tenga en cuenta que el host o el usuario, o ambos, son diferentes. El receptor es responsable de entregar el mensaje.

551: El usuario no es local, intente forward-pathgt;

Esta respuesta significa que el receptor SMTP sabe que el buzón del usuario está en otro host y significa que se realizó el reenvío correcto. camino. Nota Tenga en cuenta que el host o el usuario, o ambos, son diferentes. El destinatario se niega a recibir el correo de este usuario y el remitente debe reenviarlo basándose en la información proporcionada o devolver un mensaje de error al remitente original. El siguiente ejemplo muestra la aplicación de estas respuestas.

Ejemplo de reenvío

S: RCPT TO: lt; Postel@USC-ISI..ARPAgt

R: 251 El usuario no local reenviará tolt; ;Postel@USC-ISIF..ARPAgt;

O

S: RCPT A:lt; Paul@USC-ISIB..ARPAgt;

R: 551 Usuario no local; por favor intente; Mockapetris@USC-ISIF..ARPAgt;

3.3. Confirmación y expansión

SMTP proporciona funciones adicionales para confirmar nombres de usuarios y expandir listas de correo. Estas funciones se completan con los comandos VREF y EXPN, que toman cadenas como parámetros. Para el comando VREF, el parámetro de cadena hace referencia al nombre de usuario y la respuesta a este comando debe incluir el nombre del usuario y la dirección de correo electrónico del usuario. Para el comando EXPN, el parámetro de cadena se refiere a la lista de correo. Hay más de una respuesta a este comando. Deben incluir los nombres de todos los usuarios de la lista y sus buzones.

"Nombre de usuario" es un elemento redundante y se agregó a propósito. Si el host utiliza el comando VREF y el comando EXPN, el buzón local finalmente debe proporcionar el nombre de usuario para que el host pueda confirmarlo. Si el anfitrión elige otra cadena como nombre de usuario, esto también está permitido.

En algunos hosts, la lista de buzones y el nombre de un buzón son un poco confusos, porque la estructura de datos general puede incluir entradas de ambos tipos. Si desea enviar un acuse de recibo a la lista de correo, debe dar una respuesta OK. Después de recibir este mensaje, el anfitrión entregará el correo electrónico a todas las direcciones de la lista. Si no se recibe una respuesta de confirmación, se informará un error. Por ejemplo,

"550 Esa es una lista de correo, no un nombre de usuario". Si la solicitud es para expandir un nombre de usuario, se puede formar una respuesta determinista devolviendo una lista que contiene un nombre. Si no se recibe una respuesta determinista, se informará un error. (Por ejemplo, "550 Ese es un nombre de usuario, no una lista de correo").

En el caso de respuestas múltiples (normalmente para EXPN), cada respuesta especifica una dirección de correo electrónico. En el caso de solicitudes ambiguas, como "VRFY Smith", la respuesta de ambos Smith aquí debe ser "553 Usuario ambiguo".

Confirme el nombre de usuario como se muestra en el siguiente ejemplo: Ejemplo 3:

Confirme el nombre de usuario

S: VRFY Smith

R: 250 Fred Smithlt; Smith@USC-ISIF..ARPAgt;

o

S: VRFY Smith

R: 251 El usuario no local reenviará; tolt; Smith@USC-ISIQ..ARPAgt;

O

S: VRFY Jones

R: 550 La cadena no coincide con nada.

O

S: VRFY Jones

R: 551 Usuario no local; intente Jones@USC-ISIQ., ARPAgt;

O

S: VRFY Gourzenkyinplatz

R: 553 Usuario ambiguo.

La situación en la que la lista de buzones requiere múltiples respuestas se muestra en el siguiente ejemplo:

S: EXPN Ejemplo-Personas

R: 250-Jon Postel lt;Postel@USC-ISIF..ARPAgt;

R: 250-Fred Fonebone lt;Fonebone @USC-ISIQ.. ARPAgt;

R: 250-Sam Q. Smith lt;SQSmith@USC-ISIQ.,ARPAgt;

R: 250-Quincy Smithlt;@USC -ISIF..ARPA: Q-Smith@ISI-VAXA..ARPAgt;

R: 250-lt; joe@foo-unix..ARPAgt;

R: 250- lt; xyz@bar-unix ..ARPAgt;

o

S: EXPN Executive-Washroom-List

R: 550 Acceso denegado.

VERF Los parámetros del comando de cadena del comando EXPN no se pueden restringir debido a diferencias en implementaciones específicas. En algunos sistemas, el argumento del comando EXPN puede ser el nombre de un archivo que contiene una lista de correo, pero existen muchas estructuras de archivos diferentes en Internet.

Los comandos VRFY y EXPN no están incluidos en la implementación mínima, y ​​cuando se implementan, no es necesario implementarlos entre transportes.

Editar este párrafo 3.4. Enviar cartas y recibir cartas

El objetivo principal de SMTP es enviar correos electrónicos al buzón del usuario. Una funcionalidad similar proporcionada por algunos hosts es entregar correo a la terminal del usuario (si el usuario tiene una terminal abierta). Enviar correo al buzón del usuario se llama enviar por correo; enviarlo al terminal del usuario se llama recibir correo

(enviar). Debido a que las implementaciones de los dos son muy similares en algunos hosts, se colocaron en SMTP al mismo tiempo. Sin embargo, el comando Obtener correo no está disponible en la implementación mínima de SMTP. Los usuarios deberían tener la capacidad de controlar la escritura de información en el terminal. La mayoría de los servidores permiten a los usuarios aceptar o rechazar mensajes similares.

Los siguientes tres comandos están definidos para apoyar la obtención de letras.

Se utilizan para comandos de correo en lugar de comandos de CORREO, lo que indica el significado especial de recibir operaciones SMTP:

ENVIAR lt; ;

El comando ENVIAR requiere que el contenido del correo electrónico se transmita directamente al terminal del usuario. Si el usuario no tiene una terminal abierta (o

o no recibe información de la terminal), la respuesta 450 devolverá un comando RCPT. Si el mensaje se envía exitosamente, la operación es exitosa.

SOML lt; SPgt; FROM: lt; reverse-pathgt; lt; CRLFgt;;

El comando Enviar o enviar correo electrónico requiere que el contenido del correo electrónico se envíe directamente al terminal del usuario ( si el usuario está en el terminal). Si el usuario no está en el terminal, el contenido del correo electrónico va directamente al buzón. Si el correo electrónico se envía al terminal del usuario o al buzón del usuario, la operación de envío es exitosa.

SAML lt;SPgt; FROM: lt;reverse-pathgt;lt;CRLFgt;

Los comandos Enviar y Correo requieren que el contenido del correo electrónico se envíe directamente al terminal del usuario (si el usuario está en el terminal). Pase lo que pase, la carta irá al buzón. Si la carta llega al buzón, la operación de envío se realiza correctamente.

La respuesta utilizada para el comando MAIL es la misma que la respuesta para estos comandos.

Editar este párrafo 3.5. Apertura y cierre

Cuando se abre un canal de transmisión se debe intercambiar cierta información para determinar la identidad de ambas partes. Los siguientes comandos se utilizan

para abrir y cerrar:

HELO lt;SPgt; lt;domainingt; lt;CRLFgt;

QUIT lt;CRLFgt; /p>

En el comando HOLA, el host envía el comando mismo. Este comando se puede interpretar como: "Hola,

Soy XX".

Ejemplo de apertura de una conexión

R: 220 BBN-UNⅨ..ARPA Servicio Simple de Transferencia de CorreoListo

S: HELO USC-ISIF..ARPA

R: 250 BBN-UNⅨ..ARPA

Ejemplo de cierre de conexión

S: QUIT

R: 221 BBN-UNⅨ. .ARPA Servicio cerrando canal de transmisión

Editar este párrafo 3.6 Reenvío

La ruta de reenvío puede tener el siguiente formato: "@ONE, @TWO: JOE@THREE", aquí, UNO. , DOS

y TRES son anfitriones. Este formato se utiliza para enfatizar la diferencia entre direcciones y rutas. El correo electrónico es la dirección absoluta y la ruta es información sobre cómo llegar. Estos dos conceptos no deben confundirse.

Conceptualmente, los elementos de la ruta de reenvío se mueven a la ruta de respuesta como mensajes de un servidor SMTP a otro servidor SMTP. Una ruta de respuesta es una ruta de origen de datos inversa, como por ejemplo desde la ubicación del mensaje actual hasta la ubicación del autor. Cuando un servidor SMTP elimina su propio token de la ruta de reenvío y lo inserta en la ruta de respuesta, debe hacerlo utilizando un nombre que entienda el entorno desde el que envía, en caso de que su nombre se entienda de manera diferente en diferentes entornos.

Si el primer elemento de la ruta de reenvío cuando SMTP recibe la información no es una marca de este SMTP, este elemento no se elimina de la ruta de reenvío, sino que se utiliza para determinar el siguiente servidor SMTP que debe ser enviado a . En cualquier caso, SMTP añade su propia etiqueta a la ruta inversa.

Cuando se utiliza la ruta de origen, el SMTP receptor recibe el correo electrónico reenviado y lo envía a otro servidor SMTP receptor. El servidor receptor puede aceptar o negarse a reenviar el correo del usuario local.

El SMTP receptor cambia los parámetros del comando moviendo su propio marcador desde la ruta de avance hasta el comienzo de la ruta de respuesta. En este momento, recibir SMTP se convierte en enviar SMTP, que establece un canal hacia SMTP en la siguiente ruta de reenvío y luego envía correo a este SMTP.

El primer host en la ruta de respuesta debe ser el host que envía el comando SMTP y el primer host en la ruta de reenvío debe ser el host que recibe el comando SMTP.

Nota: La ruta de reenvío y la ruta de respuesta aparecen en los comandos y respuestas SMTP, pero no necesariamente aparecen en el mensaje.

Es decir, no es necesaria dicha ruta, especialmente si este formato aparece en los campos "Para:", "De:" y "CC:" del encabezado del mensaje.

Si el servidor SMTP acepta la tarea de reenvío, pero luego descubre que no puede enviar el correo debido a una ruta de reenvío incorrecta u otras razones, debe establecer una señal de "correo que no se puede entregar" y enviar esta señal al remitente de la carta. Donde está el Señor.

Esta señal debe enviarse desde el servicio SMTP de este host. Por supuesto, este servidor ya no debería informar mensajes de error. Una forma de evitar este bucle de informes de errores es dejar un espacio en blanco en la ruta de respuesta del comando de correo de la señal. Al transmitir este mensaje, también se permite dejar vacía la ruta de respuesta. Una ruta de respuesta vacía después de un comando MAIL aparece en el siguiente formato:

MAIL FROM:lt;gt;

El siguiente ejemplo muestra información de correo electrónico que no se puede entregar. Este mensaje es una respuesta a un error cuando un correo electrónico enviado desde JOE en HOSTW pasa por HOSTX y necesita pasar por HOSTZ para llegar a HOSTY. El ejemplo que vimos ocurrió entre HOSTX y HOSTY.

Ejemplos de mensajes de correo que no se pueden entregar

S: MAIL FROM: lt;

R: 250 ok

S: RCPT TO; :lt;@HOSTX..ARPA:JOE@HOSTW..ARPAgt;

R: 250 ok

S: DATA

R: 354 enviar el correo datos, terminar con .

S: Fecha: 23 de octubre de 81 11:22:33

S: De: SMTP@HOSTY..ARPA

S: Para: JOE@HOSTW,.ARPA

S: Asunto: Problema con el sistema de correo

S: Lo siento JOE, tu mensaje a SAM@HOSTZ..ARPA se perdió.

S: HOSTZ..ARPA dijo esto:

S: "550 No existe tal usuario"

S: .

R: 250 ok

p>

Preguntas frecuentes sobre editar este párrafo

⒈ ¿Qué es SMTP? ¿Qué hace? Respuesta: SMTP es la abreviatura de Simple Mail Transfer Protocol, que es un protocolo de transferencia de correo simple que proporciona una transferencia de correo efectiva y eficaz. transmisión confiable. El protocolo de correo electrónico se utiliza para intercambiar correos electrónicos entre dos servidores de correo.

⒉ El protocolo TCP se utiliza para la transmisión de correos electrónicos entre servidores de correo. ¿Por qué a veces se pierden los correos electrónicos?

Respuesta. : El protocolo SMTP entre servidores de correo utiliza conexiones TCP, lo que puede garantizar que los correos se transmitan con precisión entre servidores de correo. Sin embargo, debido a fallas en los propios servidores de correo, como espacio de correo insuficiente, etc., es posible que los correos no completen la transmisión. y puede perderse.

⒊ ¿Por qué el agente de usuario del remitente no envía el correo electrónico directamente al agente de usuario del destinatario, sino que lo transmite a través del servidor de correo?

Respuesta: Debido a la limitación del rendimiento de la computadora del usuario no puede ejecutar un programa que envía y recibe correos electrónicos, y no puede ejecutarse sin interrupción y conectarse a Internet. Por lo tanto, las cartas solo se pueden almacenar temporalmente en el servidor de correo y los usuarios pueden descargarlas cuando sea necesario. .