عند كتابة الطلبات عبر الإنترنت، غالبًا ما نواجه مشكلة إرسال رسائل البريد الإلكتروني عبر الإنترنت. يتم تحديد محتوى البريد الإلكتروني ديناميكيًا بواسطة البرنامج. إذا كنت تستخدم ASP لكتابة الطلبات عبر الإنترنت، فكيف يمكنك تنفيذ هذه الوظيفة ببساطة وبسرعة؟
من الناحية العملية، يستخدم المؤلف وظيفة مكون COM الخاصة بـ ASP لتنفيذ مكون صغير لإرسال رسائل البريد الإلكتروني في VB، ويمكن تحقيق هذه الوظيفة ببساطة عن طريق الاتصال بها في ASP. تم تضمين جميع آليات معالجة البريد الإلكتروني في هذا المكون، وهو سهل الاستخدام للغاية. سيتم عرض مبادئ التطوير الأساسية لهذا المكون وتطبيقه في ASP بالتفصيل أدناه.
1. استخدم عنصر تحكم Winsock للاتصال بـ SMTP لإرسال رسائل البريد الإلكتروني
، وتتضمن جهة اتصال SMTP العملية الكاملة للمصافحة وإرسال البيانات والإغلاق. الإجراءات الرئيسية هي كما يلي:
إنشاء نموذج frmsendmail، الذي يحتوي على عنصر تحكم Winsock ويحتوي على الجمهور التالي المتغيرات:
public mstmp كسلسلة
// stmp لإرسال البريد الإلكتروني
public mfrom كسلسلة
// من العنوان
public mto كسلسلة
// عنوان الوصول
public msubject كسلسلة
// موضوع البريد الإلكتروني
public mtext كسلسلة
// البريد الإلكتروني
sock.connect mstmp, 25
// وأرسل إنشاء جهة اتصال عبر stmp للبريد الإلكتروني
الخاص sub sock_connect()
sflag = sfconn
// قم بتعيين المعلمات بعد
نهاية الاتصال الناجح الفرعية
الخاصة sock_dataarrival(byval bytestotal as long)
على الخطأ goto daerr
dim s as string
sock.getdata s
حدد حالة sflag
حالة sfstart
حالة sfconn
sflag = sfhelo
// أرسل رسالة مصافحة مرحبًا
أرسل "helo" && mmyname
case sfhelo
sflag = sffrom
أرسل "mail from:" && getreal(mfrom)
case sffrom
إذا ترك (s, 3) 〈〉 "250" ثم انتقل إلى srverr
// إذا تم إرسال عنوان البريد الإلكتروني المستلم بنجاح،
sflag = sfrcpt
send "rcpt to:" && getreal(mto)
case sfrcpt
if left(s, 3) 〈〉 "250" ثم انتقل إلى srverr
// إذا نجحت، فابدأ في إرسال البيانات
sflag = sfdata
أرسلحالة
"بيانات"
sfdataإذا تركت (s, 3) 〈〉 "354" ثم انتقل إلى srverr
sflag = sfsendover // تتضمن البيانات 4 عناصر وتنتهي بـ
send "from: " && mfrom
send "to: " && mto
send "subject: " && msubject && vbcrlf.
أرسل
mtext
أرسل
"
.
"
2. تغليف الوظائف المذكورة أعلاه في فئة
بما أن عناصر التحكم لا يمكن أن توجد في المكونات التي يمكن لـ ASP استخدامها، يجب تغليف النماذج المذكورة أعلاه من خلال وحدات الفئة. أولاً، قم بإنشاء نموذج أثناء تهيئة الفصل:
مجموعة
sub class_initialize() الخاصة
frm = new frmsendmailend sub
تغلف المتغيرات العامة للنموذج كسمات في وحدة الفصل.
الواجهة الوظيفية لهذا النموذج هي:
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
حيث يمكن تعيين المتغير أو يأتي من السابق صفحة الطلب.