Qué
es AspEmail
AspEmail es un componente activo del servidor, creado por Persists
Software, Inc, que sirve para mandar mensajes de correo electrónico
usando un servidor SMTP externo desde entornos como ASP y Visual
Basic.
Instalación
Pregunta al administrador de tu sitio web si disponen de ese
componente. Si no es el caso pero te da permiso para instalar
dlls propios en el servidor, puedes descargar la versión
gratuita pero con ciertas limitaciones desde http://www.aspemail.com/,
en su sección download. Una vez lo tengas
en tu ordenador, instálalo y envía al adminstrador
el archivo AspEmail.dll solicitándole que
lo registre. Este archivo suele encontrarse, después
de la instalación en un directorio parecido a este:
c:\archivos de programa\Persits Software\AspEmail\BIN\.
(Nota: Estos pasos son sólo una indicación ya
que es muy fácil que estos pasos puedan variar de un
ordenador a otro y de un servidor web a otro)
Cómo se usa AspEmail en ASP
Ya he comentado que AspEmail es un componente del servidor,
por lo tanto debes crear una instancia del mismo en ASP
Esto se hace así:
Set Mail = Server.CreateObject(Persits.MailSender)
Lo siguiente es configurar las opciones elementales como
el servidor SMTP
Mail.Host = smtp.tuservidor.com
También puedes especificar varios Servidores SMTP
por si alguno no funciona en ese momento. Esto se hace indicando
a la propiedad Host varios servidores separados por ;.
Mail.Host = smtp.tuservidor.com;smtp2.tuservidor.com;smtp.otroservidor.com
Otra propiedad indispensable es el email de quien envía
el mensaje:
Mail.From = ventas@miservidor.com
Y si lo deseas (es opcional) el nombre del mismo:
Mail.FromName = Departamento de ventas
A continuación le indicamos a quién debe mandar
el mensaje, ya sea como Dirección Original o bien como
Carbon Copy. Algunos ejemplos:
Mail.AddAddress nombre@unservidor.com
En el siguiente ejemplo, el parámetro Nombre
del destinatario es opcional
MailAddAddress nombre@otroservidor.com, Nombre
del destinatario
MailAddCC otronombre@otroservidor.com
Destinatario de la copia
Nota: Fíjate que ahí no hemos usado el signo
=. Esto es porque es un método, no una
propiedad del componente. Saber esto te será útil
cuando consultes la referencia de AspMail
También es importante, aunque no imprescindible, indicarle
un título al mensaje
Mail.Subject Titulo del mensaje
Y por supuesto, siempre es conveniente escribir algo en el
cuerpo del mensaje
Mail.Body = Estimado Amigo, & chr(13) &
chr(10) & Gracias por tu coperación
Incluso puedes mandarlo usando HTML con sólo indicar
una propiedad más
Mail.Body =<html><body bgcolor=#DDDDDD>Estimado
Amigo,...</BODY></HTML>
Mail.IsHTML = True
Ya sólo nos falta enviar el mensaje, usando el método
Send (enviar). Puede que hacer esto falle en algún
momento por lo que es una buena costumbre usar On Error
Resume Next en tu código. Por ejemplo:
On Error Resume Next
Mail.Send
If Err <> 0 Then
Response.Write Ha ocurrido un error: & Err.Description
Else
Response.Write Mensaje enviado con éxito
End if
Ejemplo útil de AspEmail
A continuación te mostramos mediante la cual, y sólo
con pasarle algunos parámetros, te permitirá
enviar un correo electrónico.
<%
Function Correo(From,FromName,Address,AddressName,Subject,Body)
Dim Mail
On Error Resume Next
Set Mail = Server.CreateObject("Persits.MailSender")
Mail.Host = "mail.tuservidor.com"
Mail.ContentTransferEncoding = "Quoted-Printable"
Mail.From = From
Mail.FromName = Mail.EncodeHeader(FromName)
Mail.AddAddress Address, Mail.EncodeHeader(AddressName)
Mail.Subject = Mail.EncodeHeader(Subject)
Mail.Body = Body
Mail.SendToQueue
If Err <> 0 Then
Correo = Err.Description
Else
Correo = ""
End If
End Function
%>
Los parámetros de la función son:
From Dirección de correo del remitente
FromName Nombre del remitente
Address Dirección de correo del destinatario
AddressName Nombre del destinatario
Subject Asunto del correo que se quiere enviar
Body Cuerpo del mensaje que se quiere enviar
Si esta función se encuentra en un archivo llamado
"correo.inc", dentro del directorio /utilidades,
para enviar un correo bastará con hacer algo como lo
que sigue:
<!--#include virtual="/utilidades/correo.inc"-->
<%
strError = Correo("webmaster@ciberteca.net","Webmaster
de la Ciberteca","tucorreo@tuservidor.com","Tu
Nombre", "Buen tutorial","Muchas gracias
por el tutorial de ASPEmail, me ha sutado mucho")
if len(strError) > 0 then
Response.Write "<b>Se ha producido un error al
enviar el email</b><br>" & strError
else
Response.Write "Email enviado con éxito".
end if
%>
Como puedes observar, si se produce un error, la variable
strError almacenará una descripción del motivo
que lo ha causado. Esta caraterística la usamos para
advertir al usuario del éxito o fracaso de la operación.
Este ejemplo te puede ser muy útil para enviar formularios,
emails recomendando la página web, pequeñas
listas de correo y muchas otras posibilidades.
Referencia anotada del componente AspEmail en español
Aquí tienes una referencia con las propiedades, los
métodos y los códigos de error más importantes
del componente. Recuerda que antes de enviar el mensaje debes
haber completado todas las propiedades Requeridas que se indican
y que sólo podrás usar las características
premium si adquiere la versión comercial
del producto, no la gratuita.
Propiedades del Componente
|
Propiedad
y Tipo
|
Comentarios
|
|
Host
As String
|
Requerido.
La dirección del servidor SMTP que se usará para enviar
mensajes.
|
|
Port
As Integer
|
El número
de Puerto de SMTP 25 por defecto.
(No conviene modificarlo, el puerto 25 es el que suelen
usar todos los servidores)
|
|
From
As String
|
Requerido.
La dirección de correo electrónico de quien envía este
mensaje.
|
|
FromName
As String
|
El nombre
de quien envía este email.
|
|
Subject
As String
|
El título
del mensaje.
|
|
Body
As String
|
El cuerpo
del Mensaje. Puede enviarse como sólo texto o bien en
formato HTML si se pone la propiedad IsHTML a Verdadero
(True).
(Con esto consigues que tus mensajes queden más bonitos.
La pega es que algunos lectores de correo no permiten
la visualización de HTML)
|
|
IsHTML
As Boolean
|
Está a Falso
(False) por defecto pero la tienes que cambiar a Verdadero
(True) si quieres enviar HTML en vez de texto simple
en el cuerpo de tu mensaje.
|
|
Priority
As Integer
|
Prioridad
del mensaje:
1 – Alta
3 – Normal
5 – Baja
Por defecto
está a 0 que significa que no se indica prioridad.
|
|
Helo
As String
|
Esta cadeba
de texto identifica al cliente frente al servidor SMTP.
Por defecto es"AspEmail” (y no conviene modificarlo)
|
|
ContentTransferEncoding
As String
|
Especifica
la codifiación de la cabecera MIME para el cuerpo del
mensaje.. Tienes tres opciones:
- “7bit”
(por defecto).
- “8bit”
- “quoted-printable”,
convierte el cuerpo del mensaje al formato Quoted-Printable
especificado en la RFC-2045 (las RFC son donde se
indican las especificaciones de Internet)
Esta propiedad
es útil cuando se envían mensaje en un idioma distinto
al inglés (como el español, por ejemplo).
Esto es
una característica premium.
|
|
CharSet
As String
|
Especifica
los carácteres usados por la cabera MIME. Por defecto
"ISO-8859-1"
Esto es
una característica premium.
|
|
Username
As String
|
Es el Nombre
de Usuario.
Debes usar
las propiedades Username/Password si tu servidor
SMTP requiere que el cliente le suministre parámetros
de autentificación.
Esto es
una característica premium.
|
|
Password
As String
|
Clave.
Debes usar
las propiedades Username/Password si tu servidor
SMTP requiere que el cliente le suministre parámetros
de autentificación.
Esto es
una característica premium.
|
|
Method
Name
|
Arguments
|
Comments
|
|
AddAddress
|
Email
As String,
Optional Nombre
|
Añade una
dirección de email a los destinatarios. El nombre del
destinatario es opcional.
|
|
AddCC
|
Email
As String,
Optional Nombre
|
Añade una
dirección de email a los destinatarios de copias Cc:.
El nombre del destinatario es opcional.
|
|
AddBcc
|
Email
As String,
Optional Name
|
Muy parecido
al anterior pero con Bcc:
|
|
AddReplyTo
|
Email
As String,
Optional Name
|
Muy parecido
al anterior pero con Reply-To:
|
|
AddAttachment
|
Path
As String
|
Añadir archivo
adjunto. El Path debe indicar la localización absoluta
(ejemplo: “c:\temporal\archivo.xls”) dentro del servidor.
|
|
AppendBodyFromFile
|
Path
As String
|
Rellena la
propiedad Body con el texto o el HTML de un archivo
especificado en Path.
Esto es
una característica premium.
|
|
Send
|
Ninguno
|
Envía el mensaje.
Pueden producir
errores por lo que es recomendable usar “On Error Resume
Next”
|
|
Reset
|
Ninguno
|
Limpia todas
la lista de direcciones asi como la lista de todos los
archivos adjuntos incluidos.
|
|
ResetAll
|
Ninguno
|
Hace lo mismo
que el método Reset pero además pone todas las
propiedades a sus valores por defecto.
|
|
EncodeHeader
|
Header
as String
Devuelve:
String
|
Codifica una
cadena que contenga caracteres ASCII mayors de 127 según
las directrices de la RFC 1522. Debes usar este método
para codificar el título, el nombre del receptor o el
nombre del servidor. Por ejemplo:
MailSubject
= Mail.EncodeHeader(“España mola un montón”)
|
|
Error Code
|
Description
|
|
1
|
Falló la inicialización de
Winsock.
|
|
2
|
Falló gethostbyname.
|
|
3
|
Falló la creación del Socket
creation.
|
|
4
|
Falló la conexión.
|
|
5
|
Falló al enviar datos.
|
|
6
|
Error devuelto por el servidor
SMTP
|
|
7
|
Falló al abrir un fichero.
|
|
8
|
Memoria insuficiente
|
|
9
|
Falló al leer de un fichero.
|
|
10
|
Servidor SMTP no especificado
|
|
13
|
Valor no permitido de la
prioridad.
|
|