إرسال رسائل البريد الإلكتروني مع المرفقات باستخدام دلفي وإندي

click fraud protection

فيما يلي إرشادات حول إنشاء "مرسل بريد إلكتروني" يتضمن خيارًا لإرسال رسائل البريد الإلكتروني والمرفقات مباشرةً من تطبيق Delphi. قبل أن نبدأ ، النظر في البديل ...

افترض أن لديك تطبيقًا يعمل على بعض بيانات قاعدة البيانات ، من بين مهام أخرى. يحتاج المستخدمون إلى تصدير البيانات من التطبيق الخاص بك و إرسال البيانات عبر البريد الإلكتروني (مثل تقرير خطأ). بدون النهج الموضح أدناه ، يجب عليك تصدير البيانات إلى ملف خارجي ثم استخدام عميل بريد إلكتروني لإرساله.

إرسال البريد الإلكتروني من دلفي

هناك العديد من الطرق التي يمكنك من خلالها إرسال بريد إلكتروني مباشرة من دلفي ، ولكن أبسط طريقة هي استخدام ShellExecute API. سيقوم هذا بإرسال البريد الإلكتروني باستخدام عميل البريد الإلكتروني الافتراضي المثبت على جهاز الكمبيوتر. على الرغم من أن هذا الأسلوب مقبول ، إلا أنه يتعذر عليك إرسال مرفقات بهذه الطريقة.

تستخدم تقنية أخرى Microsoft Outlook و OLE لإرسال البريد الإلكتروني ، هذه المرة مع دعم المرفقات ، ولكن مطلوب بعد ذلك MS Outlook ليتم استخدامها.

هناك خيار آخر وهو استخدام دعم دلفي المدمج لواجهة برمجة تطبيقات البريد البسيط لـ Windows. يعمل هذا فقط إذا كان لدى المستخدم برنامج بريد إلكتروني متوافق مع MAPI مثبت.

instagram viewer

الأسلوب الذي نناقشه هنا يستخدم إندي مكونات (Internet Direct) - مجموعة مكون إنترنت رائعة تتكون من بروتوكولات الإنترنت الشهيرة المكتوبة في دلفي وعلى أساس مآخذ الحجب.

طريقة TIdSMTP (إندي)

يعد إرسال (أو استرداد) رسائل البريد الإلكتروني مع مكونات 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. المستلمون EMailAddresses: = ledTo. Text + '،' + ledCC.Text؛ MailMessage. الموضوع: = ledSubject. نص؛ MailMessage. الجسم. النص: = الجسم. نص؛ إذا FileExists (ledAttachment. نص) ثم TIdAttachment. إنشاء (MailMessage). MessageParts ، ledAttachment. نص)؛ //ارسل بريدمحاولةمحاولة SMTP.Connect (1000) ؛ SMTP.Send (MailMessage) ؛ إلاعلى E: استثناء القيام به. StatusMemo. خطوط. إدراج (0 ، 'خطأ:' + + رسالة) ؛ النهاية; أخيراإذا SMTP.Connected ثم SMTP.Disconnect ؛ النهاية; النهاية; (* btnSendMail Click *)

ملحوظة: داخل الكود المصدري ، ستجد إجرائين إضافيين يتم استخدامهما لإنشاء قيم مضيف, من عندو إلى تحرير مربعات ثابتة ، وذلك باستخدام ملف INI للتخزين.

instagram story viewer