Lors de la rédaction de candidatures en ligne, nous rencontrons souvent le problème de l'envoi d'e-mails en ligne. Le contenu des e-mails est déterminé dynamiquement par le programme. Si vous utilisez ASP pour rédiger des candidatures en ligne, comment pouvez-vous implémenter cette fonction simplement et rapidement ?
En pratique, l'auteur utilise la fonction composant COM d'ASP pour implémenter un petit composant d'envoi d'emails en VB. Cette fonction peut être réalisée en l'appelant simplement en ASP. Tous les mécanismes de traitement des e-mails sont encapsulés dans ce composant, extrêmement pratique à utiliser. Les principes de développement de base de ce composant et son application dans ASP seront présentés en détail ci-dessous.
1. Utilisez le contrôle Winsock pour contacter SMTP pour l'envoi d'e-mails
, et le contact SMTP inclut l'ensemble du processus d'établissement de liaison, d'envoi de données et de fermeture. Les principales procédures sont les suivantes :
Créez un formulaire frmsendmail, qui contient un contrôle Winsock et a le public suivant. variables :
public mstmp as string
// stmp pour l'envoi d'e-mails
public mfrom as string
// de l'adresse
publique mto as string
// adresse d'arrivée
public msubject as string
// sujet de l'e-mail
public mtext as string
// corps de l'e-mail
sock.connect mstmp, 25
// et envoie Établir le contact via stmp de l'e-mail
privé sub sock_connect()
sflag = sfconn
//Définir les paramètres après
la fin de la connexion sous-
privée sub sock_dataarrival(byval bytestotal as long)
en cas d'erreur goto daerr
dim s as string
sock.getdata s
select case sflag
case sfstart
case sfconn
sflag = sfhelo
//Envoyer un message de poignée de main bonjour
send "helo " && mmyname
case sfhelo
sflag = sffrom
send "mail from:" && getreal(mfrom)
case sffrom
if left(s, 3) 〈〉 "250" then goto srverr
//Si l'adresse e-mail de réception est envoyée avec succès,
sflag = sfrcpt
envoie "rcpt to:" && getreal(mto)
case sfrcpt
if left(s, 3) 〈〉 "250" then goto srverr
//En cas de succès, commence à envoyer des données
sflag = sfdata
envoie "data"
case sfdata
if left (s, 3 ) 〈〉 "354" puis allez à srverr
sflag = sfsendover //Les données comprennent 4 éléments et se terminent par
envoyer "de : " && mfrom
envoyer "à : " && mpour
envoyer "sujet : " && msubject && vbcrlf.
envoyer mtext
envoyer " ."
case sfsendover
if left(s, 3) 〈〉 "250" then goto srverr
sflag = sfstart
sendok = true
envoyer "quit"
end select
exit sub
end sub
2. Encapsuler les fonctions ci-dessus dans une classe
Puisque les contrôles ne peuvent pas exister dans les composants qu'ASP peut utiliser, les formulaires ci-dessus doivent être encapsulés via des modules de classe. Tout d'abord, créez un formulaire lors de l'initialisation de la classe :
private sub class_initialize()
set frm = new frmsendmail
end sub
encapsule les variables publiques du formulaire en tant qu'attributs dans le module de classe.
L'interface de fonction de ce formulaire est :
public sub send()
frm.sendstart
end sub
3. Enregistrez ce composant
pour compiler le projet ci-dessus dans un fichier dll. Vous pouvez l'enregistrer via VB ou manuellement.
4.
Laméthode d'appel d'application dans ASP
est la suivante :
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
où la variable peut être affectée ou provenir de la précédente page de demande.