דיוור באמצעות טופס Web בשימוש ב- ASP

האובייקט Newmail בסביבת ASP, מספק את האופן המהיר ביותר למשלוח תכולה של טופס הנמצא בדף Web, במספר קטן של שורות קוד. בתבנית הפשוטה ביותר, ניתן לשלוח הודעת דואר תוך שימוש באובייקט ה- Newmail באופן הבא:

("Set objMail = CreateObject")CDONTS.Newmail
"objMail.Send") me@hostguru.net", "you@somewherelse.co.il", "Good news", "It may rain today")
Set objMail = Nothing

שורות קוד אלו גורמות להודעת דואר בפרוטוקול SMTP להישלח לכתובת you@somewherelse.co.il כאשר בכותרת כתוב "Good news",ובגוף ההודעה כתוב "It may rain today". בשדה השולח תופיע הכתובת "me@hostguru.net".

שורת הקוד הראשונה יוצרת את האובייקט NewMail. השורה השניה גורמת להודעת הדואר הספציפית להישלח והשורה האחרונה "מנקה את הסביבה" תוך שהיא משחררת את המשאבים שהוקצו לאובייקט ה- NewMail כשהוא יוצר בשורה הראשונה. אין כל צורך לבצע איסוף תיקיות, איסוף הודעות או זיהוי בפני שרת כלשהו.

כפי שראינו, המידע בהודעה מסופק בצורת פרמטרים בשיטת Send. אם נרצה, נוכל לקבוע את מאפייני אובייקט NewMail באופן הבא:

("Set objMail = CreateObject")CDONTS.Newmail
"objMail.From" = me@hostguru.net
"objMail.To" = you@somewherelse.co.il
"objMail.Subject" = Good News
"objMail.Body" = It may rain today
objMail.Send
Set objMail = Nothing

דוגמת קוד זו מביאה לתוצאה זהה לתוצאה של הדוגמה הקודמת, ויתרונה הוא בכך שקל יותר לקרוא ולהבין את הקוד, וכמובן שקל יותר לדבג באם אינו מספק את התוצאות המקוות.

כדי להגדיר את הנמען, השתמשנו בכתובת ה- SMTP המלאה שלו (למשל: you@somewherelse.co.il). הנמענים מוגדרים באמצעות המאפיינים To, Cc ו- Bcc, באופן הבא:

"objMail.To" = you@somewherelse.co.il
"objMail.Cc" = guliver@somewherelse.co.il
"objMail.Bcc"= panda@hostguru.net

במקרה זה, ההודעה תישלח ל- you@somewherelse.co.il, העתק יישלח ל- guliver@somewherelse.co.il והודעה נסתרת תישלח ל- panda@hostguru.net.

כשאנו מגדירים כתובת SMTP לקבלת הודעה נסתרת או Bcc, פירוש הדבר הוא שהוא יקבל עותק של ההודעה מבלי שהנמען שכתובתו מופיעה בשדה ה- To וכל אחד מהמכותבים שכתובתם מופיעה בשדה ה- Cc יידעו שנשלח אליו עותק (או אפילו על קיומו...)

על מנת להגדיר מספר נמענים להודעה, יש להפריד את כתובותיהם בעזרת נקודה ופסיק, באופן הבא:

objMail.To = "you@somewherelse.co.il;guliver@somewherelse.co.il;panda@hostguru.net"

ניתן להגדיר מספר נמענים בשדות ה- To, ה- Cc וה- Bcc באופן זה. לא ניתן, לעומת זאת, להגדיר יותר משולח אחד. בשדה ב- To יש להגדיר כתובת SMTP אחת ויחידה. יש לציין ששדות ה- To וה- From חייבות שתהיה בהן כתובת כלשהי.

ניתן להוריד דוגמה עובדת, הניתנת ליישום מיידי, מכאן. הדוגמה כוללת שני קבצים - קובץ HTML הכולל טופס עם שדות למילוי באופן מקוון, וקובץ ASP שמאחזר את המידע שמולא בשדות הטופס ודואג לשיגורו באמצעות SMTP.

במידה ואנו מעוניינים לאחזר את המידע שמולא בשדות שונים, נכניס את שמות כל השדות ב- objMail.Body. אם לדוגמה, יש בטופס שלנו שדה ששמו name ובו יכניס הגולש את שמו, ושדה נוסף ששמו phone, ובו יכניס הגולש את מספר הטלפון שלו, נוכל להכניס את הקוד הבא בקובץ ה- ASP:

("Set objMail = CreateObject")CDONTS.Newmail
("objMail.From = request.form") email
"objMail.To" = you@somewherelse.co.il
"objMail.Subject" = Name and Phone Number
& " : objMail.Body" = Name & " :request.form") name " & ("Phone ("request.form") phone
objMail.Send
Set objMail = Nothing

בדוגמה זו, אנו מאחזרים מתוך הטופס שלושה פרמטרים: כתובת דוא"ל (השדה email), שם (השדה name) ומספר טלפון (השדה phone). שני פרמטרים אחרים - To ו- Subject - הם קבועים ומוגדרים מראש.

מובן שבאופן זה ניתן לאחזר מידע מכל מספר שהוא של שדות.