الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استفسار عن كيفية استقبال بريد الكتروني - أيميل كلاينت

مغلق
بدأه Last Patriot في 21 يوليو 2007 · 1 رد · 1,240 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لقد قمت بعمل برنامج بدلفي 7 لارسال بريد الكتروني عن طريق سيرفر خاص (بواسطة اسم السيرفر و المستخدم و الباسورد)

و ايضا عن طريق سيرفر عام مثل ياهو أو هوت ميل (بواسطة اسم السيرفر فقط) و في هذه الحالة الرسالة ترسل الي الجنك أو السبام.

قمت بعمل ذلك عن طريق استخدام مكونات Indy و هي مكونات جيدة للغاية في موضوعات البريد و الويب. (SMTP)

سؤالي: هل قام احد بعمل برنامج لاستقبال الاميلات Email Client عن طريق مكونات Indy أو اي مكونات اخري؟

هل من مثال واضح بالكود لهذا الموضوع ؟ مع العلم بانه يجب استخدام اميل سيرفر و اميل أكونت لاستقبال الرسائل عليه.

#2

كيف اقرأ من خادم

procedure TForm1.btnVerifClick(Sender: TObject);
var NbrMsgs, i: Integer;
begin

  lstMsgs.Clear;

  //Renseignement des différentes infos de connexion
  POP3.Host	 := edServeur.Text;
  POP3.Port	 := StrToIntDef(edPort.Text, 110);
  POP3.Username := edUser.Text;

  //On donne le mot de passe en fonction de l'état de la case à cocher
  If cbxPass.Checked then
	POP3.Password := edPass.Text
  else
	POP3.Password := '';

  try
	try
	  //Connexion au serveur
	  POP3.Connect;

	  //On récupère le nombre de messages
	  NbrMsgs := POP3.CheckMessages;
	  lblMsg.Caption := IntToStr(NbrMsgs);

	  for i := 1 to NbrMsgs do
	  begin
		//On récupère l'entête du ième message
		POP3.RetrieveHeader(i, idMsg);
		//Affichage de quelques informations dans la liste
		lstMsgs.Items.Add('"' + idMsg.Subject + '" de ' + idMsg.From.Address);
		idMsg.Clear;
	  end;

	except
	  on e: exception do ShowMessage(e.Message);
	end;
  finally
	//Le travail est terminé, on se déconnecte
	POP3.Disconnect;
  end;

end;

استرجاع الملفات المرفقة

Var
  i ,j : integer;
begin
  // On se connecte au compte mail si ce n'est pas déjà fait
  if not IdPop3.connected then
	idPop3.connect;

  // On va boucler du premier au dernier message sur le compte
  for i := 1 to idPop3.CheckMessages do
  begin
	// On récupère le message complet
	idPop3.Retrieve(i,IdMessage);

	// Si on a plusieurs parties dans le mail alors on a une pièce jointe 
	if IdMessage.MessageParts.Count > 0 then
	  for j := 0 to IdMessage.MessageParts.count -1 do
	  begin
		// Est-ce une partie texte du mail ?
		if IdMessage.MessageParts.Items[j] is TIdText then
		begin
		  // A vous de traiter comme bon vous semble cette partie du mail 
		  Showmessage(TIdText(IdMessage.MessageParts.Items[j]).Body.text); // Par exemple		  
		end;

		// Est-ce une pièce jointe ?
		if IdMessage.MessageParts.Items[j] is TAttachment then
		  With TIdAttachment(IdMessage.MessageParts.Item[j]) do
			if not FileExists('c:\temp\' + FileName) then
				// On sauvegarde le fichier
				SaveTofile('c:\temp\' + Filename);

	   end; // for j
  end; // for i
end;

post-1034-1185178080_thumb.jpg

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 23 يوليو 2007 في 11:14

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…