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

نسخة كاملة : ارسال امايل ب telnet مثال جيد
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم
فكرة لارسال الرسائل بدون smtp برتوكول
وذلك باستخدام telnet فقط

[صورة: 20121109081647.jpg]

والمركبات المستخدمة

[صورة: 20121109085356.jpg]

الفكرة من هنا
كود :
http://www.kongtechnology.com/2008/01/27/smtp-authentication-and-send-emails-using-telnet/

البرنامج والكود سورس مرفق
تم تعديل الكود
PHP كود :
private
    { Private 
declarations }   {shift+ctrl+c}
    
procedure sendmail(UserNme, password, host,from,_to,Subject,body: string; port: integer);

  public
    { Public 
declarations }
  
end;

var
  
Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.IdTelnet1Status(ASender: TObject;
  const 
AStatus: TIdStatus; const AStatusText: String);
begin
 stat1
.Panels[0].Text:=AStatusText;
end;

procedure TForm2.IdTelnet1DataAvailable(Sender: TIdTelnet;
  const 
Buffer: String);
begin
 Application
.ProcessMessages;
 if 
Length(Trim(Buffer)) >0 then
 Memo1
.Lines.Add(Buffer)
end;

procedure TForm2.FormDestroy(Sender: TObject);
begin
try
  if 
IdTelnet1.Connected then
IdTelnet1
.Disconnect;
finally
Application.Terminate;
end;
end;

procedure TForm2.sendmail(UserNme, password, host,from,_to,Subject,body: string; port: integer);
begin
 Edit2
.Text:=UserNme;
 
Edit3.Text:=password;

   
Memo1.Clear;
   
Application.ProcessMessages;
   if 
IdTelnet1.Connected then
   IdTelnet1
.Disconnect;
   
IdTelnet1.Host:=host;
   
IdTelnet1.Port:=port;
    try
    
IdTelnet1.Connect;
    
IdTelnet1.WriteLn('HELO '+edit1.Text);
    
IdTelnet1.WriteLn('AUTH LOGIN');
    
Sleep(500);
    
IdTelnet1.WriteLn(IdEncoderMIME1.EncodeString(UserNme));   //username
    
IdTelnet1.WriteLn(IdEncoderMIME1.EncodeString(password)); //password
    
Sleep(500);
    
IdTelnet1.WriteLn('MAIL FROM:'+from);
    
IdTelnet1.WriteLn('RCPT TO:'+_to);
    
IdTelnet1.WriteLn('DATA');
    
IdTelnet1.WriteLn('Subject:'+Subject);
    
IdTelnet1.WriteLn('');
    
IdTelnet1.Writeln(body);
    
IdTelnet1.WriteLn('.');
    
IdTelnet1.Writeln('quit');
  
except
   IdTelnet1
.Disconnect;
   
end;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
sendmail
('delphi4arab', 'algeria', 'mail.rambler.ru',Edit1.Text,Edit1.Text,Edit4.Text,Mmo1.Text ,587);
end;

end. 
السلام عليكم

فكرة جيدة.هل الـHost في مكون الtelnet هو نفسه ال IP الخاص بسرفير الرسائل ك exchange مثلا و كم هو رقم المنفذ الخاص بالexchange في حالة مكون الtelnet ؟ أم هو نفسه 25 مثل SMTP ؟