27-04-2025, 10:53 AM
28-04-2025, 01:19 PM
لإرسال بريد إلكتروني من تطبيق دلفي 2010، لديك عدة خيارات:
الطريقة 1: استخدام مكون
TIdSMTP
من Indy
الطريقة 2: استخدام ShellExecute
نصائح مهمة:
الطريقة 1: استخدام مكون
TIdSMTP
من Indy
- أضف المكونات التالية إلى الفورم:
- TIdSMTP
- TIdMessage
- TIdSSLIOHandlerSocketOpenSSL
(إذا كنت تستخدم SSL)
- TIdSMTP
- كود الإرسال الأساسي:
كود :
procedure SendEmail;
var
SMTP: TIdSMTP;
Email: TIdMessage;
SSLHandler: TIdSSLIOHandlerSocketOpenSSL;
begin
SMTP := TIdSMTP.Create(nil);
Email := TIdMessage.Create(nil);
SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
try
// إعدادات خادم SMTP
SMTP.IOHandler := SSLHandler;
SMTP.Host := 'smtp.example.com'; // استبدل بخادم SMTP الخاص بك
SMTP.Port := 465; // أو 587 حسب إعدادات الخادم
SMTP.Username := 'your_email@example.com';
SMTP.Password := 'your_password';
SMTP.UseTLS := utUseExplicitTLS;
// إعدادات الرسالة
Email.From.Address := 'your_email@example.com';
Email.Recipients.EmailAddresses := 'recipient@example.com';
Email.Subject := 'موضوع الرسالة';
Email.Body.Text := 'محتوى الرسالة هنا';
// إرسال الرسالة
SMTP.Connect;
try
SMTP.Send(Email);
ShowMessage('تم إرسال البريد بنجاح');
finally
SMTP.Disconnect;
end;
finally
Email.Free;
SSLHandler.Free;
SMTP.Free;
end;
end;الطريقة 2: استخدام ShellExecute
كود :
uses
ShellAPI;
procedure SendSimpleEmail;
var
Recipient, Subject, Body: string;
begin
Recipient := 'mailto:recipient@example.com';
Subject := '?subject=موضوع الرسالة';
Body := '&body=محتوى الرسالة هنا';
ShellExecute(0, 'open', PChar(Recipient + Subject + Body), nil, nil, SW_SHOWNORMAL);
end;نصائح مهمة:
- عند استخدام خوادم SMTP مثل جيميل أو ياهو، قد تحتاج إلى:
- تفعيل "التطبيقات أقل أمانًا" في حسابك
- استخدام كلمات مرور التطبيقات إذا كان الحساب يستخدم المصادقة الثنائية
- تفعيل "التطبيقات أقل أمانًا" في حسابك
- للتحكم الأفضل بالمرفقات، استخدم:
كود :
TIdAttachmentFile.Create(Email.MessageParts, 'C:\path\to\file.pdf');- يمكنك استخدام مكونات أخرى مثل
TSMTPClient
من وحدة
System.Net.Mail
في إصدارات دلفي الأحدث.