להלן הוראות ליצירת "שולח דוא"ל" הכולל אפשרות לשליחת הודעות דואר אלקטרוני וקבצים מצורפים ישירות מיישום דלפי. לפני שנתחיל, שקול את האלטרנטיבה ...
נניח שיש לך אפליקציה הפועלת על נתוני מסד נתונים מסוימים, בין משימות אחרות. משתמשים צריכים לייצא נתונים מהיישום שלך ו שלח את הנתונים באמצעות דוא"ל (כמו דוח שגיאות). ללא הגישה המפורטת להלן, עליך לייצא את הנתונים לקובץ חיצוני ואז להשתמש בלקוח דוא"ל כדי לשלוח אותם.
שולח דוא"ל מדלפי
ישנן דרכים רבות בהן אתה יכול לשלוח דוא"ל ישירות מדלפי, אך הדרך הפשוטה ביותר היא להשתמש ב- ShellExecute ממשק API. פעולה זו תשלח את הדוא"ל באמצעות לקוח הדוא"ל המוגדר כברירת מחדל המותקן במחשב. אמנם גישה זו מקובלת, אך אינך יכול לשלוח קבצים מצורפים בדרך זו.
טכניקה אחרת משתמשת ב- Microsoft Outlook ו- OLE בכדי לשלוח את הדוא"ל, הפעם עם תמיכה בקבצים מצורפים, אך לאחר מכן נדרש להשתמש ב- MS Outlook.
אפשרות נוספת היא להשתמש בתמיכה המובנית של דלפי עבור ממשק ה- API של Windows Simple Mail. זה עובד רק אם למשתמש מותקנת תוכנית דוא"ל תואמת MAPI.
הטכניקה בה אנו דנים כאן משתמשת אינדי רכיבים (אינטרנט ישיר) - חבילת רכיבי אינטרנט נהדרת המורכבת מפרוטוקולי אינטרנט פופולריים שנכתבו בדלפי והתבססו על שקעים חסימתיים.
שיטת TIdSMTP (Indy)
שליחה (או אחזור) של הודעות דוא"ל עם רכיבי Indy (שנשלחת עם Delphi 6+) קלה כמו השלכת רכיב או שניים על טופס, הגדרת מאפיינים מסוימים ו"לחיצה על כפתור. "
כדי לשלוח דוא"ל עם קבצים מצורפים מדלפי באמצעות אינדי, נצטרך שני רכיבים. קודם ה TIdSMTOP משמש לחיבור ותקשורת (שליחת דואר) עם שרת SMTP. שנית, ה TIdMessage מטפל באחסון והקידוד של ההודעות.
כאשר ההודעה בנויה (מתי TIdMessage "מלא" בנתונים), הדוא"ל מועבר לשרת SMTP באמצעות TIdSMTP.
קוד המקור לשולח דוא"ל
יצרתי פרויקט שולחי דואר פשוט שאותו אני מסביר להלן. תוכלו להוריד את קוד המקור המלא כאן.
הערה: קישור זה הוא הורדה ישירה לקובץ ZIP עבור הפרויקט. אתה אמור להיות מסוגל לפתוח אותו ללא שום בעיות, אך אם אינך יכול, השתמש 7-מיקוד כדי לפתוח את הארכיון כך שתוכל לחלץ את קבצי הפרויקט (המאוחסנים בתיקיה הנקראת שלח מייל).
כפי שתוכלו לראות ממסך המסך של זמן העיצוב, לשלוח דוא"ל באמצעות TIdSMTP רכיב, לפחות עליך לציין את שרת הדואר SMTP (מארח). ההודעה עצמה זקוקה לחלקי הדוא"ל הרגילים שמולאו, כמו למשל מ, ל, נושא, וכו.
להלן הקוד שמטפל בשליחת דוא"ל אחד עם קובץ מצורף:
תהליך TMailerForm.btnSendMailClick (שולח: TObject); התחל StatusMemo. ברור; // הגדרת SMTP SMTP.Host: = ledHost. טקסט; SMTP.Port: = 25; // הגדרת הודעת דואר MailMessage. מ. כתובת: = ledFrom. טקסט; MailMessage. נמענים. כתובות דואר אלקטרוני: = ledTo. טקסט + ',' + ledCC.Text; MailMessage. נושא: = ledSubject. טקסט; MailMessage. גוף. טקסט: = גוף. טקסט; אם FileExists (ledAttachment. טקסט) לאחר מכן TIdAchchment. צור (MailMessage. MessageParts, ledAttachment. טקסט); //שלח מיילנסהנסה SMTP.Connect (1000); SMTP.Send (MailMessage); מלבדב ה: חריג לעשות. StatusMemo. שורות. הכנס (0, 'שגיאה:' + E.Message); סוף; סוף סוףאם SMTP. מחובר לאחר מכן SMTP. נתק; סוף; סוף; (* לחץ על btnSendMail *)
הערה: בתוך קוד המקור תמצאו שני נהלים נוספים המשמשים לייצור הערכים של ה- מנחה, מ, ו ל תיבות עריכה מתמשכות, תוך שימוש בקובץ INI לאחסון.