|
|
Tutorial ASP
Tutorial de ASPEmail (Ampliado)
Este articulo ha sido leído 112,867
veces
|
|
Tutorial de
ASPEmail
Colaboración enviada por 
¿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.
|
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(“España
mola un montón”)
|
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.
|
164 usuarios han valorado este
articulo.
Valoracion media:
|
Nota: Para
cualquier consulta u opinión sobre este articulo puedes usar los
foros
AspTutor lo
hacemos entre todos ¿Como vas a colaborar hoy?
|