Fecha de publicación del tutorial: 2004-01-08

Tutorial visitado 13.737 veces Descargar en PDF
Tutorial para el desarrollo de un sistema de envíos maxivos de correos

Desarrollo de un sistema de envío de correos utilizado ficheros.

 

1- INTRODUCCIÓN

A continuación pasaré a describir el proceso de realización de un sistema para el envío de correos (mailings) de forma automática y sin necesitad de ningún gestor o programa adicional, basado en la gestión de ficheros de texto.

Esta aplicación será de gran utilidad para todas aquellas personas que no dispongan de un sistema de bases de datos.

Para el desarrollo de esta aplicación utilizaremos el componente filesystemobject que gestionará la información existente en los ficheros.

Los pasos a seguir para este desarrollo son:

  • Diseñar y maquetar el mailing que se desea enviar en formato html.
  • Creación de archivo txt que servirá de "bbdd" de usuarios.
  • Desarrollo, configuración y ejecución de la página de envío de mailings.

 

2- IMPLEMENTACIÓN DEL SISTEMA

2.1- Diseñar y maquetar el mailing en html que se desea enviar.

Es necesario diseñar y maquetar una página en html que nos servirá de mailing para enviar a nuestros usuarios, estos mailing pueden contener múltiples elementos gráficos, textos, flash, ... todos ellos deberán tener sus rutas puestas de modo absoluto al dominio, es decir, todas los elementos deben incluir como http://www.dominio/img/1.gif por ejemplo, nunca de forma relativa, por ejemplo: /img/1.gif, para que en los gestores de correo (outlook, pegasus, eudora, ...) se presenten correctamente.

Hay miles de consejos de marketing para la realización de estos mailings (correos llamativos, creativos, originales, directos, de poco tamaño, ...), en fin LA IMAGINACIÓN AL PODER!!!

Para este ejemplo utilizaremos el siguiente modelo.

El código de este ejemplo es el siguiente:

<HTML>
<HEAD>
<TITLE>Correo de prueba - Carixma</TITLE>
</HEAD>
<BODY bgColor=#cccccc background="http://www.carixma.com/img/tutoriales/fondo.gif" NOSEND="1" link="#075878" vlink="#9999FF">
<br>
<TABLE cellSpacing=0 cellPadding=2 width=479 align=center bgColor=#000000 border=0 height="301">
<TR>
<TD Align="Center">
<TABLE cellSpacing=0 cellPadding=10 bgColor=#ffffff border=0>
<TR>
<TD>
<TABLE width="729" height="262" BORDER="1" align="left">
<TR>
<TD valign=top width="729" height="294">
<br>
<B><center><FONT face="Trebuchet MS, Verdana, Arial" color="#075878" size=5>MAILING DE PRUEBA</Font></center></B><br>
<FONT Face="Verdana" size=2>
<p align=center> No cree en el destino? Hoy es su día de suerte, ha encontrado el mejor tutorial del mundo!!!<br><br><br><br><br></p>
<p align="left"> <font size="4" color="#0000ff"><b>CARIXMA.COM</b></font><font size="4" color="#000000"><b>, SERVICIOS PARA LOS PROFESIONALES Y PYMES</b></p>
</font>
<hr>
<FONT Face="Verdana" size=2><p align="left">Pulse <a href="http://www.carixma.com" target="_blank">aquí</a> para disponer de infinidad de recursos y utilidades.</b><br></p></font>
</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
</TD>
</TR>
<TR>
<TD height="14">
<table cellspacing=0 cellpadding=3 width="100%" border=0 bordercolor="#0000CC">
<tr><td width="70%" bgcolor=#075878 height="17" align="left"><br><br></td></tr>
</table>
</TD>
</TR>
</TABLE>
</BODY>
<>/HTML>

Para descargártelo pulsa aquí.

 

2.2- Creación de archivo txt que servirá de "bbdd" de usuarios.

Se necesita preparar un fichero de texto con la información de nuestros usuarios utilizando cualquier editor existente (NotePad, TextPad, ...), para este ejemplo sólo utilizaremos la dirección de correo, este proceso se puede hacer de múltiples maneras, dependiendo del archivo origen de los datos de usuarios, si se tiene una base de datos Access local, se puede realizar una consulta para conseguir los usuarios a los que deseamos enviar el correo y simplemente copiando y pegando ya tendríamos el fichero necesario.

El formato para este ejemplo será el siguiente, se deben poner los datos de un cada usuario en una línea separada:

Para descargártelo pulsa aquí.

 

2.3- Desarrollo, configuración y ejecución de la página de envío de mailings.

Finalmente, se desarrolla una página asp que se encarga de gestionar esta información y de enviar los correos.

Para el envío de estos correos será necesario crear en el site una carpeta que se llamará "mailings" donde copiaremos el archivo emails.txt.

Para enviar estos correos se pueden utilizar dos componentes: SMTPsvgr o CDonts, dependiendo del sistema que se tenga instalado en el servidor, a continuación presentamos los códigos disponibles con ambos ejemplos, en estos archivos existe una variable "Cuerpo" donde debemos incluir el código del mailing realizado anteriormente, sustituyendo las dobles comillas ("), por una comilla simple (') para evitar problemas en el envío.

El código de estos ejemplos son los siguientes:

Código de la página que utiliza Cdonts, para la gestión de los correos.
<%
Session.Timeout = 90
Server.ScriptTimeout = 360 '6 minutos

'Gestión del archivo de correos
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set FileObject = CreateObject("Scripting.FileSystemObject")
sFichero = Request.ServerVariables("APPL_PHYSICAL_PATH") & "mailings" & a & "\emails.txt"
Set InStream = FileObject.OpenTextFile(sFichero, ForReading)

Contador = 0
Do While Not InStream.AtEndOfStream
Email = InStream.ReadLine

'Envio de correo
Set Mailer = server.CreateObject("CDonts.NewMail")
Mailer.From = "info@dominio.es"
Mailer.To = Email
Mailer.Subject = "Publicidad: Envío de correo de prueba."
Mailer.MailFormat = 0 ' Html
Mailer.BodyFormat = 0 ' Html

Cuerpo = "<HTML><HEAD><TITLE>Correo de prueba - Carixma</TITLE></HEAD><BODY bgColor=#cccccc background='http://www.carixma.com/img/tutoriales/fondo.gif' NOSEND='1' link='#075878' vlink='#9999FF'><br><TABLE cellSpacing=0 cellPadding=2 width=479 align=center bgColor=#000000 border=0 height='301'><TR><TD Align='Center'><TABLE cellSpacing=0 cellPadding=10 bgColor=#ffffff border=0><TR><TD><TABLE width='729' height='262' BORDER='1' align='center'><TR>"

Cuerpo = Cuerpo & "<TD valign=top width='729' height='294'><br><B><center><FONT face='Trebuchet MS, Verdana, Arial' color='#075878' size=5>MAILING DE PRUEBA</Font></center></B><br><FONT Face='Verdana' size=2><p align=center> No cree en el destino? Hoy es su día de suerte, ha encontrado el mejor tutorial del mundo!!!<br><br><br><br><br></p><p align='center'> <font size='4' color='#0000ff'><b>CARIXMA.COM</b></font><font size='4' color='#000000'><b>, SERVICIOS PARA LOS PROFESIONALES Y PYMES</b></p></font><hr><FONT Face='Verdana' size=2><p align='center'>Pulse <a href='http://www.carixma.com' target='_blank'>aquí</a> para disponer de infinidad de recursos y utilidades.</b><br></p></font></TD></TR></TABLE></TD></TR></TABLE></TD></TR><TR><TD height='14'>"

Cuerpo = Cuerpo & "<table cellspacing=0 cellpadding=3 width='100%' border=0 bordercolor='#0000CC'><tr><td width='70%' bgcolor=#075878 height='17' align='center'><br><br></td></tr></table></TD></TR></TABLE></BODY></HTML>"

Mailer.Body = Cuerpo

If Mailer.Send Then
ok = true
Contador = Contador + 1
else
ok = false
sError = Email
End if
Loop

InStream.Close
Set InStream = Nothing
Set FileObject = Nothing
Set Mailer = Nothing

if ok = true then
response.write "Enviados: " & Contador & " correos."
else
response.write "Se ha produccido un error en el proceso de enviado en el correo: " & sError
end if
%>
Código de la página que utiliza SMTPsvg, para la gestión de los correos.
<%
Session.Timeout = 90
Server.ScriptTimeout = 360 '6 minutos

'Gestión del archivo de correos
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set FileObject = CreateObject("Scripting.FileSystemObject")
sFichero = Request.ServerVariables("APPL_PHYSICAL_PATH") & "mailings" & a & "\emails.txt"
Set InStream = FileObject.OpenTextFile(sFichero, ForReading)

Contador = 0
Do While Not InStream.AtEndOfStream
Email = InStream.ReadLine

'Envio de correo
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.RemoteHost = "smtp.dominio.com"
Mailer.AddRecipient "Usuario", Email
Mailer.Charset = 2 'Utilizamos UNICODE
Mailer.ContentType = "text/html"
Mailer.FromName = "Publi"
Mailer.FromAddress = "info@dominio.com"
Mailer.Subject = "Publicidad: Envío de correo de prueba."

Cuerpo = "<HTML><HEAD><TITLE>Correo de prueba - Carixma</TITLE></HEAD><BODY bgColor=#cccccc background='http://www.carixma.com/img/tutoriales/fondo.gif' NOSEND='1' link='#075878' vlink='#9999FF'><br><TABLE cellSpacing=0 cellPadding=2 width=479 align=center bgColor=#000000 border=0 height='301'><TR><TD Align='Center'><TABLE cellSpacing=0 cellPadding=10 bgColor=#ffffff border=0><TR><TD><TABLE width='729' height='262' BORDER='1' align='center'><TR>"

Cuerpo = Cuerpo & "<TD valign=top width='729' height='294'><br><B><center><FONT face='Trebuchet MS, Verdana, Arial' color='#075878' size=5>MAILING DE PRUEBA</Font></center></B><br><FONT Face='Verdana' size=2><p align=center> No cree en el destino? Hoy es su día de suerte, ha encontrado el mejor tutorial del mundo!!!<br><br><br><br><br></p><p align='center'> <font size='4' color='#0000ff'><b>CARIXMA.COM</b></font><font size='4' color='#000000'><b>, SERVICIOS PARA LOS PROFESIONALES Y PYMES</b></p></font><hr><FONT Face='Verdana' size=2><p align='center'>Pulse <a href='http://www.carixma.com' target='_blank'>aquí</a> para disponer de infinidad de recursos y utilidades.</b><br></p></font></TD></TR></TABLE></TD></TR></TABLE></TD></TR><TR><TD height='14'>"

Cuerpo = Cuerpo & "<table cellspacing=0 cellpadding=3 width='100%' border=0 bordercolor='#0000CC'><tr><td width='70%' bgcolor=#075878 height='17' align='center'><br><br></td></tr></table></TD></TR></TABLE></BODY></HTML>"

Mailer.BodyText = Cuerpo

If Mailer.SendMail Then
ok = true
Contador = Contador + 1
else
ok = false
sError = Email
End if
Loop

InStream.Close
Set InStream = Nothing
Set FileObject = Nothing
Set Mailer = Nothing

if ok = true then
response.write "Enviados: " & Contador & " correos."
else
response.write "Se ha produccido un error en el proceso de enviado en el correo: " & sError
end if
%>

Descripción del proceso: Inicialmente se utilizan las siguientes variables para controlar el tiempo máximo de ejecución de la página: Session.Timeout y Server.ScriptTimeout, seguidamente se gestiona mediante el componente Scripting.FileSystemObject el fichero con los correos de los usuarios y finalmente mediante el objeto CDonts o SMTPsvg se configuran los correos a enviar.

Descargar Fichero SMTPsvgr    --    Descargar Fichero CDonts

Los archivos .asp de estos ficheros, se debe colocar en la carpeta "mailings" del servidor y ejecutarlos (http://www.dominio.com/mailings/smtpsvg.asp ó http://www.dominio.com/mailings/cdonts.asp), si todo va bien se presentará el número de mailings enviado.

Es aconsejable hacer grupos de envíos de unos 100 correos aproximadamente, cada vez que se ejecute la página, dependiendo de la velocidad de ejecución de nuestro sistema.

 

Espero que os haya servido de ayuda.

A continuación puedes evaluarlo:

Regístrate para evaluarlo

Por favor, vota +1 o compártelo si te pareció interesante

Share |
Anímate y coméntanos lo que pienses sobre este TUTORIAL: