Resumen: En este artículo se describen las ventajas de utilizar el servicio Protocolo simple de transferencia de correo (SMTP) proporcionado por Servicios de Internet Information Server (IIS) para entregar los mensajes salientes de correo electrónico.

Introducción

Si bien un sistema de mensajería completo puede ofrecer todos los servicios necesarios para procesar tanto los mensajes entrantes como los mensajes salientes de correo electrónico, el servicio SMTP de Windows 2000 es una solución más rentable (es gratuito con el sistema operativo) para los sitios que sólo utilizan el correo electrónico para los mensajes salientes.

Funcionamiento de SMTP

El Protocolo simple de transferencia de correo es uno de los Protocolos de Internet (IP) centrales diseñados para transferir correo electrónico de manera confiable y eficiente.

La idea que subyace a SMTP es bastante sencilla. Un usuario o una aplicación redacta un mensaje que contiene la dirección de correo electrónico del destinatario (por ejemplo, "juandato@empresa.com") junto con el asunto y el contenido del mensaje.

La entrega del mensaje se inicia al transferir el mensaje a un servidor SMTP dedicado. Basándose en el nombre de dominio de la dirección de correo electrónico del destinatario (por ejemplo, "empresa.com"), el servidor SMTP inicia la comunicación con un servidor de Sistema de nombres de dominio (DNS), que busca y devuelve el nombre de host del servidor SMTP de destino (por ejemplo, "mail.empresa.com") para ese dominio.

Por último, el servidor SMTP de origen se comunica directamente con el servidor SMTP de destino a través del puerto 25 del Protocolo de control de transporte/Protocolo de Internet (TCP/IP). Si el nombre de usuario de la dirección de correo electrónico del destinatario coincide con una de las cuentas de usuario autorizadas en el servidor de destino, el mensaje original se transferirá a dicho servidor, esperando que el destinatario recoja el mensaje mediante un programa cliente.

En caso de que el servidor SMTP de origen no pueda comunicarse directamente con el servidor de destino, el protocolo SMTP dispone de mecanismos para transferir mensajes a través de uno o varios servidores SMTP intermedios de retransmisión. Un servidor de retransmisión recibirá el mensaje original e intentará entregarlo al servidor de destino o redirigirlo a otro servidor de retransmisión. Este proceso se repetirá hasta que se entregue el mensaje o hasta que transcurra un periodo de tiempo de espera designado.

Configurar SMTP en Windows 2000

SMTP se ha implementado como uno de los incluidos en Servicios de Internet Information Server.

Instalar el servicio SMTP

Para instalar el servicio SMTP

  1. En el menú Inicio , seleccione Configuración y, a continuación, haga clic en Panel de control . Haga doble clic en Agregar o quitar programas , haga clic en Agregar o quitar componentes de Windows y, después, haga clic en el botón Componentes .
  2. En el Asistente para componentes de Windows, seleccione Servicios de Internet Information Server (IIS) y haga clic en Detalles . Seleccione el componente Servicio SMTP y haga clic en Aceptar .

Nota Se necesitan otros componentes de IIS para poder utilizar el servicio SMTP. Son los componentes Complemento, Servidor Web del World Wide Web y Archivos comunes de Servicios de Internet Information Server. Estos componentes se seleccionan e instalan automáticamente junto con el componente Servicio SMTP.

Configurar el servicio SMTP

Si el servicio SMTP se instala en un equipo host con una conexión de red con Internet, y el servidor de seguridad que mira hacia Internet no está bloqueando el tráfico SMTP del puerto 25, la configuración predeterminada del servicio SMTP debe estar preparada para entregar cualquier mensaje saliente de correo electrónico. Sin embargo, sigue habiendo un par de opciones de seguridad que puede utilizar para el servidor SMTP. Puede cambiar la mayoría de estas opciones mediante la consola Administrador de servicios Internet.

Para iniciar la consola de administración de IIS

  1. En el menú Inicio , seleccione Programas y Herramientas administrativas .
  2. Haga clic en Administrador de servicios Internet para iniciar la consola de administración.

Para configurar el registro del servidor

  1. En el panel izquierdo del cuadro de diálogo Servicios de Internet Information Server , expanda el árbol de directorios. Haga clic con el botón secundario del mouse (ratón) en el Servidor virtual SMTP predeterminado y seleccione Propiedades .
  2. En el cuadro de diálogo Propiedades , haga clic en la ficha General . Active la casilla de verificación Habilitar registro para el servidor. Esta propiedad no está habilitada de manera predeterminada.
  3. Seleccione el formato preferido del archivo de registro. El valor predeterminado es Formato de archivo de registro extendido W3C .
  4. Haga clic en el botón Propiedades situado junto al menú desplegable de formato del archivo de registro.
  5. Ajuste la programación de tiempo y el nombre del archivo para la conversión del archivo de registro, si es necesario.
  6. Haga clic en la ficha Propiedades extendidas .
  7. Seleccione los elementos que le interesen y haga clic en Aceptar .

Nota Para limitar el tamaño del archivo de registro, no debe seleccionar demasiados elementos. A continuación se sugieren algunos elementos que podrían ser útiles: Fecha, Hora, Dirección IP del cliente, Nombre del usuario, Nombre del servicio, Método, Bytes enviados y Bytes recibidos.

Para configurar el control de acceso

  1. En el cuadro de diálogo Propiedades , haga clic en la ficha Avanzadas . Haga clic en el botón Retransmisión para controlar qué equipo o equipos pueden retransmitir los mensajes de correo electrónico al servidor SMTP.
  2. En el cuadro de diálogo Restricciones de retransmisión , haga clic en Agregar .
  3. En el cuadro de diálogo Equipo , escriba la dirección IP del equipo que puede retransmitir correo electrónico a través del servidor SMTP. Haga clic en Aceptar para aplicar los cambios.

Nota Si se envía un mensaje saliente al servidor SMTP desde la misma máquina, la configuración predeterminada del permiso Retransmisión será adecuada. Sin embargo, si el mensaje se envía desde otra máquina, tendrá que agregar la dirección IP o el nombre de dominio de la otra máquina a la lista de permisos para que funcione la retransmisión.

Especificar el host inteligente para la retransmisión

Si su servidor SMTP está detrás de un servidor de seguridad que bloquea el tráfico SMTP directo (a través del puerto 25), tendrá que averiguar si en la red hay un host inteligente que pueda retransmitir todos los mensajes SMTP hacia Internet.

Básicamente, un host inteligente puede ser otro servidor SMTP con permisos para retransmitir los mensajes salientes de correo electrónico, desde otros servidores SMTP internos, directamente hacia Internet. Por tanto, un host inteligente debe ser capaz de conectarse simultáneamente tanto a la red interna como a Internet para poder funcionar como puerta de enlace de correo electrónico.

Una vez identificado un host inteligente de la red puede configurar el servidor SMTP.

Para configurar el servidor SMTP

  1. En el cuadro de diálogo Propiedades , haga clic en la ficha Entrega y, después, haga clic en el botón Opciones avanzadas para abrir el cuadro de diálogo Entrega avanzada .
  2. En el campo Host inteligente , escriba el nombre de dominio completo (FQDN) del host inteligente. O bien, puede escribir la dirección IP del host inteligente, con [ y ] , como "[10.10.10.1]", alrededor de la dirección IP. Los caracteres [] ayudarán a acelerar el proceso de búsqueda DNS.
  3. Haga clic en Aceptar para completar los cambios.

Comprobar el servicio SMTP

Hay dos formas de comprobar si el servicio SMTP está funcionando correctamente.

Probar con un cliente de correo electrónico

En primer lugar, puede elegir el uso de un programa cliente estándar de correo electrónico de Internet, como Microsoft Outlook® Express, para realizar una comprobación rápida. Busque el lugar donde puede especificar el servidor de correo electrónico saliente (SMTP) y cámbielo por el nombre de dominio del nuevo servidor SMTP. Envíe un mensaje de prueba a su dirección habitual de correo y compruebe que se ha entregado.

Probar con el directorio de recogida

O bien, puede redactar un sencillo archivo de texto de correo electrónico basándose en las especificaciones de SMTP (RFC 822). A continuación se muestra el contenido de un archivo de texto de ejemplo escrito en el Bloc de notas:

De: miNombre@miDominio.com
Para: alguien@unDominio.com
Asunto: prueba

Éste es el cuerpo del mensaje de prueba.

Copie o mueva el archivo de texto al directorio de recogida donde se instaló SMTP. (La ruta de acceso predeterminada debe ser " raíz :\Inetpub\mailroot\Pickup".) El servicio SMTP comprueba periódicamente el directorio Pickup e intenta entregar todos los mensajes que encuentre en dicho directorio. Compruebe si puede recibir el mensaje de prueba desde el buzón de destino.

Probar con CDO

Otra forma de comprobar el servicio SMTP consiste en escribir una sencilla secuencia de comandos de Microsoft Visual Basic® Scripting Edition (VBScript) utilizando Collaboration Data Objects (CDO) para Windows 2000.

CDO para Windows 2000 (también conocido como CDO 2.0 o Cdosys.dll) es un conjunto de componentes de colaboración diseñados para simplificar la creación o la manipulación de mensajes de Internet. En lugar de escribir su propio código para las comunicaciones SMTP, los programadores pueden utilizar CDO para enviar y recibir mensajes mediante protocolos SMTP y mediante el directorio Pickup local. Para obtener más información al respecto, consulte los artículos relacionados About CDO for Windows 2000 en http://msdn.microsoft.com/library/psdk/cdosys/_cdosys_about_cdo_for_windows_2000.htm

A continuación se muestra un ejemplo de VBScript de cómo puede utilizarse CDO para entregar un mensaje mediante el servicio SMTP:

set msg = WScript.CreateObject("CDO.Message")
msg.From = "miNombre@miDominio.com"
msg.To = "alguien@unDominio.com"
msg.Subject = "prueba"
msg.TextBody = "Éste es el cuerpo del mensaje de prueba."

msg.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtpserver.miDominio.com"

msg.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

msg.Configuration.Fields.Update
msg.Send

Las cinco primeras líneas del ejemplo de código anterior crean el objeto CDO y especifican la información básica del mensaje.

Las dos líneas siguientes utilizan el objeto Configuration de CDO para configurar valores de campo para diversas opciones de configuración. Cada campo consta de dos partes: un prefijo de espacio de nombres (como "http://schemas.microsoft.com/cdo/configuration/") y un nombre local (como "smtpserver").

El campo "smtpserver" especifica el nombre de dominio (o la dirección IP) del servidor SMTP, mientras que el campo "sendusing" define si se enviará el mensaje utilizando el directorio de almacenamiento del servicio SMTP local o directamente a un servidor SMTP a través de la red. El último campo tiene establecido el valor 2, lo que significa enviar el mensaje al servidor SMTP designado a través de la red.

Finalmente, las dos últimas líneas de código actualizan las opciones de configuración e inician la entrega del mensaje.

Este método de utilizar componentes de CDO podría ser excesivo para comprobar el servicio SMTP. Sin embargo, la secuencia de comandos es útil para otras tareas administrativas del sistema. Por ejemplo, puede utilizarse la secuencia de comandos dentro del programa Registros y alertas de rendimiento para la notificación por correo electrónico cuando determinados contadores del sistema van más allá de los umbrales que tienen asignados.

Identificar la entrega errónea

Si un mensaje de correo electrónico no se puede entregar por cualquier motivo (por ejemplo, porque el nombre de usuario o la dirección de correo no son correctos), se redirigirá al directorio Badmail. De manera predeterminada, la ubicación del directorio Badmail debe ser " raíz :\Inetpub\mailroot\Badmail". Examine el contenido del correo rechazado y busque mensajes de error específicos. Corrija los errores, si es posible, y vuelva a enviar el mensaje mediante uno de los métodos de entrega recién explicados.

Además de en el directorio Badmail, un mensaje de correo electrónico también puede almacenarse en el directorio Queue durante un periodo de tiempo designado. (Es posible especificar este valor si ajusta los Intervalos de reintento salientes en la ficha Entrega del cuadro de diálogo Propiedades de Servidor virtual SMTP predeterminado .) Si un mensaje no se puede entregar inmediatamente porque la conexión de red está ocupada o inactiva, el mensaje se almacenará en este directorio Queue y se enviará de nuevo a los intervalos designados. Si SMTP termina tras varios intentos fallidos de entrega, se moverá el mensaje al directorio Badmail.

Probar el servicio SMTP

Para probar el servicio SMTP, siga estos pasos:

 

1. En un equipo que ejecute Windows Server 2003, escriba Telnet en el símbolo del sistema y, a continuación, presione ENTRAR.
2. En el símbolo del sistema de telnet, escriba set LocalEcho , presione ENTRAR y, a continuación, escriba open < nombreEquipo > 25 ; a continuación, presione ENTRAR.

Obtendrá un resultado similar al siguiente: 220 computername.microsoft.com ESMTP Server (Microsoft Exchange Internet Mail Service 5.5.2651.58) ready
3. Escriba helo me y presione ENTRAR.

Obtendrá un resultado similar al siguiente: 250 OK
4. Escriba mail from:email@domain.com y, a continuación, presione ENTRAR.

Obtendrá un resultado similar al siguiente: 250 OK - mail from <email@domain.com>
5. Escriba rcpt to:sucorreo@sudomininio.com y, a continuación, presione ENTRAR.

Obtendrá un resultado similar al siguiente: 250 OK - Recipient <youremail@yourdomain.com>
6. Escriba Data y, a continuación, presione ENTRAR.

Obtendrá un resultado similar al siguiente: 354 Send data. End with CRLF.CRLF
7. Escriba Subject:Esto es una prueba y, a continuación, presione ENTRAR dos veces.
8. Escriba Testing y presione ENTRAR.
9. Presione ENTRAR, escriba un punto (.) y, a continuación, presione ENTRAR.

Obtendrá un resultado similar al siguiente: 250 OK
10. Escriba quit y presione ENTRAR. obtendrá un resultado similar al siguiente: 221 Closing Port / Mail queued for delivery

 

 

Conclusión

El servicio SMTP suministrado por Servicios de Internet Information Server de Windows 2000 es un componente sencillo y eficaz para entregar mensajes de correo electrónico salientes de manera rentable. Evita que los administradores de sistemas tengan que configurar un sistema de mensajería complejo para la transmisión confiable de mensajes de correo de Internet. Cuando se utiliza con CDO para Windows 2000, los programadores pueden implementar comunicaciones SMTP sin necesidad de escribir mucho código.