Al escribir aplicaciones en línea, a menudo nos encontramos con el problema de enviar correos electrónicos en línea. El contenido del correo electrónico lo determina dinámicamente el programa. Si usa ASP para escribir aplicaciones en línea, ¿cómo puede implementar esta función de manera simple y rápida?
En la práctica, el autor utiliza la función del componente COM de ASP para implementar un pequeño componente para enviar correos electrónicos en VB. Esta función se puede realizar simplemente llamándola en ASP. Todos los mecanismos de procesamiento de correo electrónico están encapsulados en este componente, que es extremadamente cómodo de usar. Los principios básicos de desarrollo de este componente y su aplicación en ASP se presentarán en detalle a continuación.
1. Utilice el control Winsock para contactar SMTP para enviar correos electrónicos
, y el contacto SMTP incluye todo el proceso de protocolo de enlace, envío de datos y cierre. Los procedimientos principales son los siguientes:
Cree un formulario frmsendmail, que contiene un control winsock y tiene el siguiente público. variables:
mstmp público como cadena
// stmp para enviar correo electrónico
mfrom público como cadena
// desde la dirección
mto público como cadena
// dirección de llegada
msubject público como cadena
// asunto del correo electrónico
texto m público como cadena
// cuerpo del correo electrónico
sock.connect mstmp, 25
// y enviar Establecer contacto a través de stmp de correo electrónico
sub privado sock_connect()
sflag = sfconn
// Establecer parámetros después de una conexión exitosa
finalizar sub
privado sub sock_dataarrival(byval bytestotal mientras)
en caso de error goto daerr
dim s as string
sock.getdata s
seleccione case sflag
case sfstart
case sfconn
sflag = sfhelo
//Enviar mensaje de protocolo de enlace hola
enviar "helo " && mmyname
case sfhelo
sflag = sffrom
send "mail from:" && getreal(mfrom)
case sffrom
if left(s, 3) 〈〉 "250" luego ir a srverr
//Si la dirección de correo electrónico de recepción se envía correctamente,
sflag = sfrcpt
envía "rcpt a:" && getreal(mto)
case sfrcpt
if left(s, 3) 〈〉 "250" luego pasa a srverr
//Si tiene éxito, comienza a enviar datos
sflag = sfdata
envía "datos"
case sfdata
if left (s, 3) 〈〉 "354" luego vaya a srverr
sflag = sfsendover // Los datos incluyen 4 elementos y terminan con .
enviar "desde: " && mdesde
enviar "a: " && mto
enviar "asunto: " && msubject && vbcrlf
enviar mtext
enviar "."
caso sfsendover
si left(s, 3) 〈〉 "250" luego ir a srverr
sflag = sfstart
sendok = true
enviar "salir"
finalizar seleccionar
salir sub
finalizar sub
2. Encapsule las funciones anteriores en una clase
Dado que los controles no pueden existir en los componentes que ASP puede usar, los formularios anteriores deben encapsularse a través de módulos de clase. Primero, cree un formulario durante la inicialización de la clase:
private sub class_initialize()
set frm = new frmsendmail
end sub
encapsula las variables públicas del formulario como atributos en el módulo de clase.
La interfaz de función de este formulario es:
public sub send()
frm.sendstart
end sub
3. Registre este componente
para compilar el proyecto anterior en un archivo dll. Puede registrarlo a través de VB o manualmente.
4.
Elmétodo de llamada de la aplicación en ASP
es el siguiente:
set smail=server.createobject("sendmailx.mail")
smail.stmp="166.166.1.1"
smail.logfile="e:logsmail.log"
smail.mfrom = mfromname && " 〈" && mfromaddr && "〉"
smail.mto = mtoname && " 〈" && mtoaddr && "〉"
smail.msubject = msubject
smail.mtext = mtext
smail.send
donde se puede asignar la variable o provenir de la anterior página de solicitud.