فرم فراموشی رمز عبور (ForgetPasswordForm) را باز کنید. فرم شما باید شبیه به تصویر زیر باشد.
[برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]
کد OnClick مربوط به IWGradButtonSendPassword را مانند نمونه زیر وارد کنید :
در انتها فایل کد ForgetPasswordUnit.pas باید به شکل زیر باشد :کد:procedure TForgetPasswordForm.IWGradButtonSendPasswordClick(Sender: TObject); var aUser: TUser; begin inherited; aUser := aUser.GetUserInfo('', 0, IWEmailEdit.Text); if aUser <> nil then begin aUser.SendNewPasswordEmail(UserSession.SMTP, UserSession.MailMessage); WebApplication.ShowMessage('رمز عبور جدید به ایمیل شما ارسال گردید'); end else WebApplication.ShowMessage('ایمیل وارد شده نامعتبر است'); aUser.Free; end;
------------------------------------------------------------------------------------------------------------------------------------------کد:unit ForgetPasswordUnit; interface uses WordGame_Namespace, Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, BaseUnit, IWVCLComponent, IWBaseLayoutComponent, IWBaseContainerLayout, IWContainerLayout, IWTemplateProcessorHTML, IWCompGradButton, IWVCLBaseControl, IWBaseControl, IWBaseHTMLControl, IWControl, IWCompEdit, IWTMSCtrls; type TForgetPasswordForm = class(TBaseForm) IWEmailEdit: TTIWEmailEdit; IWGradButtonSendPassword: TIWGradButton; procedure IWGradButtonSendPasswordClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var ForgetPasswordForm: TForgetPasswordForm; implementation uses ServerController, UserSessionUnit; {$R *.dfm} procedure TForgetPasswordForm.IWGradButtonSendPasswordClick(Sender: TObject); var aUser: TUser; begin inherited; aUser := aUser.GetUserInfo('', 0, IWEmailEdit.Text); if aUser <> nil then begin aUser.SendNewPasswordEmail(UserSession.SMTP, UserSession.MailMessage); WebApplication.ShowMessage('رمز عبور جدید به ایمیل شما ارسال گردید'); end else WebApplication.ShowMessage('ایمیل وارد شده نامعتبر است'); aUser.Free; end; end.
یونیت UserSessionUnit را باز کنید و به حالت طراحی بروید. یک کامپوننت TIdSSLIOHandlerSocketOpenSSL و یک کامپوننت TIdMessage و یک کامپوننت TIdSMTP روی فرم قرار دهید و خصوصیات آنها را مانند کد زیر تغییر دهید :
در انتها فایل کد UserSessionUnit.pas باید به شکل زیر باشد :
کد:object IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL Destination = 'smtp.gmail.com:467' Host = 'smtp.gmail.com' MaxLineAction = maException Port = 467 DefaultPort = 0 SSLOptions.Mode = sslmUnassigned SSLOptions.VerifyMode = [] SSLOptions.VerifyDepth = 0 Left = 152 Top = 32 end object MailMessage: TIdMessage AttachmentEncoding = 'MIME' BccList = <> CCList = <> Encoding = meMIME FromList = < item end> Recipients = <> ReplyTo = <> ConvertPreamble = True Left = 32 Top = 32 end object SMTP: TIdSMTP IOHandler = IdSSLIOHandlerSocketOpenSSL1 Host = 'smtp.gmail.com' Password = 'MyPassword' Port = 467 SASLMechanisms = <> UseTLS = utUseRequireTLS Username = 'Email@gmail.com' Left = 32 Top = 84 end
دقت کنید که برای ارسال ایمیل باید مقادیر Email@gmail.com و MyPassword را با اطلاعات درست جایگزین نمایید
کد:unit UserSessionUnit; { This is a DataModule where you can add components or declare fields that are specific to ONE user. Instead of creating global variables, it is better to use this datamodule. You can then access the it using UserSession. } interface uses IWUserSessionBase, SysUtils, Classes, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient, IdSMTPBase, IdSMTP, IdMessage, IdBaseComponent, IdComponent, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL; type TIWUserSession = class(TIWUserSessionBase) IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL; MailMessage: TIdMessage; SMTP: TIdSMTP; private { Private declarations } public CurrentUserID: Integer; { Public declarations } end; implementation {$R *.dfm} end.
علاقه مندي ها (Bookmarks)