delphi4arab منتديات دلفي للعرب
مشروع Starmail مفتوح المصدر - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي التقنية (https://delphi4arab.net/forum/forumdisplay.php?fid=6)
+--- قسم : دلفي والتعامل مع الشبكات و الانترنت (https://delphi4arab.net/forum/forumdisplay.php?fid=21)
+--- الموضوع : مشروع Starmail مفتوح المصدر (/showthread.php?tid=6780)



مشروع Starmail مفتوح المصدر - onexite - 12-02-2015

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

PHP كود :
implementation

{$R *.dfm}
  
type
    TReponseFormat 
= record
    stored
,
    
added,
    
rest,
    
error: string;
  
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
i: integer;
begin
  result
:='';
  for 
i:=1 to length(url) do begin
    
case url[i] of 'a'..'z','A'..'Z','0'..'9','/','.','&','-','=', '?': result:=result+ url[i];
    else 
result:=result+'%'+uppercase(inttohex(ord(url[i]),2));
    
end;
  
end;
end;

function 
GetReponse(Content:string):TReponseFormat;
var
Super: ISuperObject;
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(Sender: TObject);
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(Sender: TObject);
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.Text) then
  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(Sender: TObject);
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
رابط الموقع
ستارمايل

وفي الختام
اي خطا او احتمال ثغرة فنرجــــوا ان تشاركونا بها


مشروع Starmail مفتوح المصدر - lionsys - 24-02-2015

شكراً جزيلاً باركك الله أيها المبارك الكريم ، صراحة فكرة وبرمجة ممتاز جداً .