المشاركات : 33
المواضيع 9
:
: 0
الإنتساب : Jan 2014
السلام عليكم احبتي
فكرة في برمجة برنامج عندما يدخل المستخدم بياناته يتم ارسال المعلومات الى البريد الالكتروني المحدد .
البرنامج بسيط للغاية لكن الكود لم يعمل معي .
قمت بانزال على الفورم 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;
اتمنى ان يكون الطرح واضح احبتي و اشكركم لا تبخلو عليا باية نصيحة او اضافة تجول في خاطركم .
لانني لا زلت اتعلم .
والسلام عليكم
المشاركات : 654
المواضيع 82
:
: 68
الإنتساب : Mar 2011
اضف ssleay32.dll و libeay32.dll الى مشروعك
واذا كنت تستخدم الجمايل انتقل الى هذا الرابط
https://www.google.com/settings/security/lesssecureapps
لتفعيل الوصول الى حسابك
بالتوفيق
PHP كود : uses idsmtp,idmessage,IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient, IdSMTPBase,IdBaseComponent, IdComponent, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL;
function SendEmail(sTo, sSubject, sText,sUserName,sPassWord: string):string; const
_HOST = 'smtp . live . com'; _PORT = 587; var crPrevious : TCursor; idSSL : TIdSSLIOHandlerSocketOpenSSL; idSMTP: TIdSMTP; 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;
المشاركات : 654
المواضيع 82
:
: 68
الإنتساب : Mar 2011
او استخدم هذه الوحدة الجاهزة من برنامج موقوت تدعم الرسائل المكتوبة باللغة العربية
بالتوفيق
المشاركات : 33
المواضيع 9
:
: 0
الإنتساب : Jan 2014
شكرا لك اخي الغالي onexite على ردك المميز
لكن هل هذا الكود يمكنني نسخه ولصقه مباشرة مع انني ساقوم بالتعديل عليه فقط .
للعلم اخي انا استخدم دلفي 2010 .
ما رايك ؟
المشاركات : 33
المواضيع 9
:
: 0
الإنتساب : Jan 2014
هل من رد اخي لقد عدلته بهذا الشكل
كود : 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;
المشاركات : 654
المواضيع 82
:
: 68
الإنتساب : Mar 2011
من الارشيف :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 ( $SMTPIN, 1024 ); 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 ( $SMTPIN, 1024 ); fputs ($SMTPIN, "RCPT TO: <".$this->to.">\r\n"); $talk["To"] = fgets ($SMTPIN, 1024); 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(Sender: TObject); 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;
النتيجة
المشاركات : 33
المواضيع 9
:
: 0
الإنتساب : Jan 2014
والله شكرا لك اخي الغالي على ردودك حقا استفد منها كثيرا
لكن الا يبدو كود الدلفي الجديد مختلف عن الاول كيف ساضعه على البرنامج ؟
الا يمكننا التعديل في الاول يبدا افضل والله اعلم انت ادرى مني يا اخي .
المشاركات : 654
المواضيع 82
:
: 68
الإنتساب : Mar 2011
FaLcon_DZ كتب :والله شكرا لك اخي الغالي على ردودك حقا استفد منها كثيرا
لكن الا يبدو كود الدلفي الجديد مختلف عن الاول كيف ساضعه على البرنامج ؟
الا يمكننا التعديل في الاول يبدا افضل والله اعلم انت ادرى مني يا اخي .
|