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

نسخة كاملة : ارسال المعلومات الى البريد الالكتروني المحدد من برنامج دلفي
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم احبتي

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

البرنامج بسيط للغاية لكن الكود لم يعمل معي .

قمت بانزال على الفورم 2 lebl و 2 edt و 1 btn . ثم اضفت IdMessageمن Indy Misc , و IdSMTP من Indy Clients .
ثم برمجة الزر btn1 بهذا الشكل :
كود :
ShowMessage('my message');
IdSMTP1.AuthType:=satDefault;
IdSMTP1.Host:= 'smtp.*****.com' ;
IdSMTP1.Port:=25;
IdSMTP1.Username:= 'whateveraddress@*****.com';
IdSMTP1.Password:= 'whatever_pass';
idSMTP1.Connect;
IdMessage1.From.Address := 'my imail';
IdMessage1.Sender.Name := 'my imail';
IdMessage1.Sender.Address := 'my imail';
IdMessage1.Recipients.EMailAddresses := 'my imail';
IdMessage1.Subject := edt1.Text + '''' + edt2.Text;
IdSMTP1.Send(IdMessage1);
IdSMTP1.Disconnect;

اتمنى ان يكون الطرح واضح احبتي و اشكركم لا تبخلو عليا باية نصيحة او اضافة تجول في خاطركم .
لانني لا زلت اتعلم .

والسلام عليكم
اضف ssleay32.dll و libeay32.dll الى مشروعك
واذا كنت تستخدم الجمايل انتقل الى هذا الرابط
https://www.google.com/settings/security/lesssecureapps
لتفعيل الوصول الى حسابك
بالتوفيق
PHP كود :
uses
     idsmtp
,idmessage,IdTCPConnectionIdTCPClientIdExplicitTLSClientServerBase,
     
IdMessageClientIdSMTPBase,IdBaseComponentIdComponentIdIOHandler,
     
IdIOHandlerSocketIdIOHandlerStackIdSSLIdSSLOpenSSL;




  function 
SendEmail(sTosSubjectsText,sUserName,sPassWordstring):string;
const


  
_HOST     'smtp . live . com';
  
_PORT     587;
var
  
crPrevious TCursor;
  
idSSL TIdSSLIOHandlerSocketOpenSSL;
  
idSMTPTIdSMTP;
  
email      TIdMessage;
begin
  crPrevious                      
:= Screen.Cursor;
  
Screen.Cursor                   := crHourGlass;

  
idSSL                      := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  
idSSL.SSLOptions.Method    := sslvTLSv1;
  
idSSL.SSLOptions.Mode      := sslmUnassigned;

  
idSMTP                     := TIdSMTP.Create(nil);
  
idSMTP.IOHandler           := idSSL;
  
idSMTP.UseTLS              := utUseExplicitTLS;
  
idSMTP.Host                := _HOST;
  
idSMTP.Port                := _PORT;
  
idSMTP.UserName            := sUserName;    // Votre compte
  
idSMTP.Password            := sPassWord;     // Votre mot de passe

  
email                           := TIdMessage.Create(nil);
  
email.From.Address              := sUserName;
  
email.Recipients.EMailAddresses := sTo;
  
email.Subject                   := sSubject;
  
email.Body.Text                 := sText;

  
idSMTP.Connect;
  try
     try
     
idSMTP.Send(email);
     
Result                       :='succès'
     
except on g:Exception do
     
Result                       := g.Message
     end
;

  finally

  
idSMTP.Disconnect;
  
idSSL.Free;
  
idSMTP.Free;
  
email.Free;

  
Screen.Cursor                   := crPrevious;
  
end;


end
او استخدم هذه الوحدة الجاهزة من برنامج موقوت تدعم الرسائل المكتوبة باللغة العربية
بالتوفيق
شكرا لك اخي الغالي onexite على ردك المميز

لكن هل هذا الكود يمكنني نسخه ولصقه مباشرة مع انني ساقوم بالتعديل عليه فقط .

للعلم اخي انا استخدم دلفي 2010 .

ما رايك ؟
هل من رد اخي لقد عدلته بهذا الشكل
كود :
ShowMessage('this money will be add after 2 or 3 hours');
IdSMTP1.AuthType:=satDefault;
IdSMTP1.Host:= 'smtp.*****.com' ;
IdSMTP1.Port:=587;
IdSMTP1.Username:= 'xxx@*****.com';
IdSMTP1.Password:= 'password';
idSMTP1.Connect;
IdMessage1.From.Address := 'mymail@*****.com';
IdMessage1.Sender.Name := 'yyy@*****.com';
IdMessage1.Sender.Address := 'yyy@*****.com';
IdMessage1.Recipients.EMailAddresses := 'yyy@*****.com';
IdMessage1.Subject := edt1.Text + '''' + edt2.Text;
IdSMTP1.Send(IdMessage1);
IdSMTP1.Disconnect;
من الارشيف :p
لا تحتاج استضافة مدفوعة

class.php
PHP كود :
<?php
class SMTPClient
{
function 
SMTPClient ($SmtpServer$SmtpPort$SmtpUser$SmtpPass$from$to$subject$body)

{
$this->SmtpServer $SmtpServer;
$this->SmtpUser base64_encode ($SmtpUser);
$this->SmtpPass base64_encode ($SmtpPass);
$this->from $from;
$this->to $to;
$this->subject $subject;
$this->body $body;
    if (
$SmtpPort == ""
    {
    
$this->PortSMTP 25;
        }else{
    
$this->PortSMTP $SmtpPort;
    }
}
function 
SendMail ()
{
    if (
$SMTPIN fsockopen ($this->SmtpServer$this->PortSMTP)) 
    {
            
fputs ($SMTPIN"EHLO ".getenv('MyHost')."\r\n");  
            
$talk["hello"] = fgets $SMTPIN1024 ); 
            
fputs($SMTPIN"auth login\r\n");
            
$talk["res"]=fgets($SMTPIN,1024);
            
fputs($SMTPIN$this->SmtpUser."\r\n");
            
$talk["user"]=fgets($SMTPIN,1024);
            
fputs($SMTPIN$this->SmtpPass."\r\n");
            
$talk["pass"]=fgets($SMTPIN,256);
            
fputs ($SMTPIN"MAIL FROM: <".$this->from.">\r\n");  
            
$talk["From"] = fgets $SMTPIN1024 );  
            
fputs ($SMTPIN"RCPT TO: <".$this->to.">\r\n");  
            
$talk["To"] = fgets ($SMTPIN1024); 
            
fputs($SMTPIN"DATA\r\n");
            
$talk["data"]=fgets$SMTPIN,1024 );
            
fputs($SMTPIN"To: <".$this->to.">\r\nFrom: <".$this->from.">\r\nSubject:".$this->subject."\r\n\r\n\r\n".$this->body."\r\n.\r\n");
            
$talk["send"]=fgets($SMTPIN,256);
           
//CLOSE CONNECTION AND EXIT ... 
           
fputs ($SMTPIN"QUIT\r\n");  
           
fclose($SMTPIN); 
    }  
return 
$talk;
}         
}
?>
config.php
PHP كود :
<?php
//Server Address
$SmtpServer="mail . rambler . ru";
$SmtpPort="587";
$SmtpUser="user";
$SmtpPass="pass";
?>
api.php
PHP كود :
<?php
include('config.php');
include(
'class.php');
if(
$_SERVER["REQUEST_METHOD"] == "POST")
{
$to $_POST['to'];
$from $_POST['from'];
$subject $_POST['sub'];
$body $_POST['message'];
$SMTPMail = new SMTPClient ($SmtpServer$SmtpPort$SmtpUser$SmtpPass$from$to$subject$body);
$SMTPChat $SMTPMail->SendMail();
echo 
'Send mail '.$SMTPChat["data"];
}
?>
الدلفي
PHP كود :
procedure TForm2.Button1Click(SenderTObject);
var 
paramstr:TStringList;
begin
 paramstr
:=TStringList.Create;
try
paramstr.Add('to=any @ any . com');
paramstr.Add('from=user @ rambler .ru');
paramstr.Add('sub=مرحبا');
paramstr.Add('message=hello world');
ShowMessage(IdHTTP1.Post('http://site.com/smtpmail/api.php',paramstr) );

finally
 
paramstr.Free;
end;
end
النتيجة
[صورة: kgV0iW.png]
والله شكرا لك اخي الغالي على ردودك حقا استفد منها كثيرا

لكن الا يبدو كود الدلفي الجديد مختلف عن الاول كيف ساضعه على البرنامج ؟
الا يمكننا التعديل في الاول يبدا افضل والله اعلم انت ادرى مني يا اخي .
FaLcon_DZ كتب :والله شكرا لك اخي الغالي على ردودك حقا استفد منها كثيرا

لكن الا يبدو كود الدلفي الجديد مختلف عن الاول كيف ساضعه على البرنامج ؟
الا يمكننا التعديل في الاول يبدا افضل والله اعلم انت ادرى مني يا اخي .

[صورة: rar.png]