¿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 gustado 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.
|
Métodos de AspEmail
|
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(“ Mi encabezado”)
|
Códigos de error
|
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.
|
|