เมื่อเขียนแอปพลิเคชันออนไลน์ เรามักจะประสบปัญหาในการส่งอีเมลทางออนไลน์ โปรแกรมจะกำหนดเนื้อหาอีเมลแบบไดนามิก หากคุณใช้ ASP ในการเขียนแอปพลิเคชันออนไลน์ คุณจะใช้ฟังก์ชันนี้อย่างง่ายดายและรวดเร็วได้อย่างไร
ในทางปฏิบัติ ผู้เขียนใช้ฟังก์ชันคอมโพเนนต์ COM ของ ASP เพื่อใช้คอมโพเนนต์ขนาดเล็กในการส่งอีเมลใน VB กลไกการประมวลผลอีเมลทั้งหมดถูกห่อหุ้มไว้ในองค์ประกอบนี้ ซึ่งสะดวกต่อการใช้งานเป็นอย่างยิ่ง เราจะแนะนำหลักการพัฒนาพื้นฐานของส่วนประกอบนี้และการประยุกต์ใช้ใน ASP โดยละเอียดด้านล่าง
1. ใช้ตัวควบคุม Winsock เพื่อติดต่อ SMTP สำหรับการส่งอีเมล
และผู้ติดต่อ SMTP รวมถึงกระบวนการทั้งหมดของการจับมือกัน การส่งข้อมูล และการปิด ขั้นตอนหลักมีดังนี้:
สร้างแบบฟอร์ม frmsendmail ซึ่งมีตัวควบคุม winsock และมีสาธารณะดังต่อไปนี้ ตัวแปร:
สาธารณะ mstmp เป็นสตริง
// stmp สำหรับส่งอีเมล
สาธารณะ mfrom เป็นสตริง
// จากที่อยู่
สาธารณะ mto เป็นสตริง
// ที่อยู่ที่มาถึง
สาธารณะ msubject เป็นสตริง
// หัวเรื่องอีเมล
mtext สาธารณะเป็นสตริง
// อีเมล body
sock.connect mstmp, 25
// และส่งสร้างผู้ติดต่อผ่าน stmp ของอีเมล
ย่อยส่วนตัว sock_connect()
sflag = sfconn
// ตั้งค่าพารามิเตอร์หลังจากการเชื่อมต่อสำเร็จ
สิ้นสุดการเชื่อมต่อย่อยส่วนตัว
sock_dataarrival(byval bytestotal ยาว)
บนข้อผิดพลาด goto daerr
dim s เป็นสตริง
sock.getdata s
เลือกเคส sflag
case sfstart
case sfconn
sflag = sfhelo
// ส่งข้อความจับมือสวัสดี
send "helo " && mmyname
case sfhelo
sflag = sffrom
send "mail from:" && getreal(mfrom)
case sffrom
if left(s, 3) 〈〉 "250" จากนั้นไปที่ srverr
// หากที่อยู่อีเมลที่รับถูกส่งสำเร็จ
sflag = sfrcpt
ส่ง "rcpt ไปที่:" && getreal(mto)
case sfrcpt
ถ้าเหลือ (s, 3) 〈〉 "250" จากนั้นไปที่ srverr
// หากสำเร็จให้เริ่มส่งข้อมูล
sflag = sfdata
ส่ง "data"
case sfdata
ถ้าเหลือ (s, 3 ) 〈〉 "354" จากนั้นไปที่ srverr
sflag = sfsendover //ข้อมูลมี 4 รายการและลงท้ายด้วย .
send "from: " && mfrom
send "to: " && mto
send "subject: " && msubject && vbcrlf
ส่ง mtext
ส่ง " "
case sfsendover
ถ้าเหลือ 〈〉 "250" จากนั้นไปที่ srverr
sflag = sfstart
sendok = true
ส่ง "quit"
end เลือก
exit sub
end sub
2. แค็ปซูลฟังก์ชันข้างต้นในคลาส
เนื่องจากการควบคุมไม่สามารถมีอยู่ในส่วนประกอบที่ ASP สามารถใช้ได้ แบบฟอร์มข้างต้นจะต้องถูกห่อหุ้มผ่านโมดูลคลาส ขั้นแรก สร้างแบบฟอร์มระหว่างการกำหนดค่าเริ่มต้นคลาส:
private sub class_initialize()
set frm = new frmsendmail
end sub
encapsulates ตัวแปรสาธารณะของแบบฟอร์มเป็นคุณลักษณะในโมดูลคลาส
ส่วนต่อประสานฟังก์ชันของแบบฟอร์มนี้คือ:
public sub send()
frm.sendstart
end sub
3. ลงทะเบียนส่วนประกอบนี้
เพื่อรวบรวมโครงการข้างต้นเป็นไฟล์ dll คุณสามารถลงทะเบียนผ่าน VB หรือด้วยตนเอง
4. วิธีการเรียกแอปพลิเคชันใน ASP
เป็นดังนี้:
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
โดยที่ตัวแปรสามารถกำหนดหรือมาจากตัวแปรก่อนหน้า หน้าขอ.