delphi4arab منتديات دلفي للعرب

نسخة كاملة : مشروع Starmail مفتوح المصدر
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم
مقدمة
بالطبع الكل يتسائل ماهو ستارمايل , هو عبارة عن سكربت PHP قديم برمجته منذ مدة وكانت بدايتي البرمجية في php وكان فيه اخطاء برمجية كثيرة و غير محمي
لاعلينا لقد قمت بتغيير الشكل وتغيير في قواعد البيانات والان اصبح افضل من ذي قبل
مبدأ عمل السكربت
هو عبارة عن مستقبل رسائل http ومرسل لنفسه فقط
والرسالة ترسل باكثر من طريقة ويدعم ارسال المرفقات
لماذا مفتوح المصدر
لتطوير السكربت اكثر
طريقة الاستخدام
يرسل مرة واحدة فقط من نفس الايبي الى غاية مرور بعض الوقت وهذا لتفادي السبام
ولاعادة الارسال اغلق البرنامج واعد فتحه و الارسال محدود ( 200 رسالة )
والعضويات الذهبية غير محدودة في الارسال والتكرار
موضوع سابق
الاستخدام
اولا هذه تعريفات عامة مجموعة من المتغيرات والدوال...
حيث ان UsernameCrypt و PasswordCrypt و key عبارة عن ثوابت لكل عضوية

PHP كود :
implementation

{$R *.dfm}
  
type
    TReponseFormat 
record
    stored
,
    
added,
    
rest,
    
errorstring;
  
end;


  var   
UserName      :string  ='admiin_01';
        
Password      :string  ='123456';
        
UsernameCrypt :string  ='NIwe6BU3w95IqQlJfoegoHzJlWONAV3iuPmvUOD7gKM=';
        
PasswordCrypt :string  ='u7ZO8joRBteZyavUFrVX/0bV2+42eG5G7+iWXmekt7c=';
        
key           :string  ='eQc9aioMK1C0pUJs81ZX5cJ+A/ZvolJsShZ4gR2Sm54=' ;
        
url           :string  ='http://delphiapi.0fees.net/index.php?add';

function 
Url_encode(const url:string):string;
var
iinteger;
begin
  result
:='';
  for 
i:=1 to length(url) do begin
    
case url[iof 'a'..'z','A'..'Z','0'..'9','/','.','&','-','=''?'result:=resulturl[i];
    else 
result:=result+'%'+uppercase(inttohex(ord(url[i]),2));
    
end;
  
end;
end;

function 
GetReponse(Content:string):TReponseFormat;
var
SuperISuperObject;
begin
  Super 
:= SuperObject.SO(Content);
    try
    
Result.error := Super.S['error'];
    if (
Result.error='null'then
    begin
    Result
.stored := Super.S['stored'];
    
Result.added := Super.S['added'];
    
Result.rest := Super.S['rest'];
    
end else
    
begin
    Result
.stored := '';
    
Result.added := '';
    
Result.rest := '';
    
end;  


  finally
    
Super := nil;
  
end;
end;


procedure TForm2.FormCreate(SenderTObject);
begin
Memo1
.Text:='message';
IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; rv:36.0) Gecko/20100101 Firefox/38.0';
  
// IdHTTP1.Request.ContentEncoding := 'utf-8';
  // IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';

   
UsernameCrypt:= url_encode(UsernameCrypt);
   
PasswordCrypt:= url_encode(PasswordCrypt);
   
key          := url_encode(key);
   
end
لارسال رسالة مع مرفقات POST
PHP كود :
procedure TForm2.Button3Click(SenderTObject);
var
files         TIdMultiPartFormDataStream;
Information   string;
ReponseFormat TReponseFormat;
begin
 
//post upload File   crypt
 //IdHTTP1.ProxyParams.ProxyPort:=81;
   //IdHTTP1.ProxyParams.ProxyServer:='81.3.8.101';

  
files   := TIdMultiPartFormDataStream.Create;
  if 
FileExists(Edit1.Textthen
  files
.AddFile('fileToUpload'Edit1.Text'application/x-www-form-urlencoded');
  
files.AddFormField('email',Edit2.Text);
  
files.AddFormField('subj',Edit3.Text);//.ContentTransfer := '8bit';
  
files.AddFormField('msg',Memo1.Text);//.ContentTransfer := '8bit';
  
files.AddFormField('subj',Edit3.Text,'utf-8').ContentTransfer := '8bit';
  
files.AddFormField('msg',Memo1.Text,'utf-8').ContentTransfer := '8bit'; }
  
files.AddFormField('username',UsernameCrypt );//.ContentTransfer := '8bit';
  
files.AddFormField('password',PasswordCrypt );//.ContentTransfer := '8bit';
  
files.AddFormField('key',key);//.ContentTransfer := '8bit';
  
files.AddFormField('crypt','1');//.ContentTransfer := '8bit';
  
files.AddFormField('request','post');//.ContentTransfer := '8bit';
files.AddFormField('urldecode','1');//.ContentTransfer := '8bit';

  
try

  
Information   := IdHTTP1.Post(url,files) ;
  
ReponseFormat := GetReponse(Information);
  
Label1.Caption:= 'Information :'#13#10+
                   
ReponseFormat.error+#13#10+
                   
ReponseFormat.stored+#13#10+
                   
ReponseFormat.added+#13#10+
                   
ReponseFormat.rest;

  
StatusBar1.Panels[0].Text:=Information;
  finally
  
files.Free;
  
IdHTTP1.Request.Clear;
  
IdHTTP1.ProxyParams.Clear ;
  
end;

end
لارسال رسالة عادية باستخدام GET
PHP كود :
procedure TForm2.Button5Click(SenderTObject);
var
Information   string;
ReponseFormat TReponseFormat;
begin
 
//get http

  
Information   := IdHTTP1.Get(url+'&request=get&email='+
  
url_encode(Edit2.Text)+'&subj='+url_encode(Edit3.Text)+'&msg='+url_encode(Memo1.Text)+'&username='+Username+'&password='+Password+'&key=no&crypt=0');
  
ReponseFormat := GetReponse(Information);
  
Label1.Caption:= 'Information :'#13#10+
                   
ReponseFormat.error+#13#10+
                   
ReponseFormat.stored+#13#10+
                   
ReponseFormat.added+#13#10+
                   
ReponseFormat.rest;

  
StatusBar1.Panels[0].Text:=Information;


end
طلب معلومات الارسال
PHP كود :
ShowMessage(IdHTTP1.Get(url+'&api&username='+Username+'&password='+Password)); 
البرنامج demo ( تجدونه كامل في المرفقات )

[صورة مرفقة: hyQEcg.png]

بعد استخدام البرنامج ستجدون الرسالة المرسلة في حسابكم على ستار مايل

صور من السكربت

صفحة الدخول

[صورة مرفقة: hkwNdg.png]

الواجهة الرئيسية

[صورة مرفقة: BcmgCo.png]

معلومات API

[صورة مرفقة: Ix3h74.png]

معاينة الرسالة

[صورة مرفقة: OAiUGb.png]

اعدادات اخرى
كود :
http://img538.imageshack.us/img538/2378/0PGZ6X.png
السكربت كامل النسخة 0.6 ( بدون لوحة تحكم الادمن )
كود :
http://www.mediafire.com/download/1s6ud6sapmyyl3i/SMsite06.7z

للتجربة

اسم المستخدم
admiin_01
كلمة المرور
123456
رابط الموقع
ستارمايل

وفي الختام
اي خطا او احتمال ثغرة فنرجــــوا ان تشاركونا بها
شكراً جزيلاً باركك الله أيها المبارك الكريم ، صراحة فكرة وبرمجة ممتاز جداً .