ufrmNewSMTP.pas
上传用户:yjb1804
上传日期:2021-01-30
资源大小:3105k
文件大小:3k
源码类别:

Email服务器

开发平台:

Delphi

  1. unit ufrmNewSMTP;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, cxMaskEdit, cxButtonEdit, cxControls, cxContainer, cxEdit,
  6.   cxTextEdit, StdCtrls, ExtCtrls, Menus, cxLookAndFeelPainters, cxButtons,nativexml,
  7.   JvBaseDlg, JvSelectDirectory;
  8. type
  9.   TfrmNewSMTP = class(TForm)
  10.     Panel1: TPanel;
  11.     lbl1: TLabel;
  12.     lbl2: TLabel;
  13.     lbl4: TLabel;
  14.     edtPopServer: TcxTextEdit;
  15.     edtEmailAccunt: TcxTextEdit;
  16.     edtPwd: TcxTextEdit;
  17.     edtSaveTo: TcxButtonEdit;
  18.     Label1: TLabel;
  19.     Panel2: TPanel;
  20.     btnOk: TcxButton;
  21.     btnCancel: TcxButton;
  22.     Image1: TImage;
  23.     SelectDir: TJvSelectDirectory;
  24.     procedure edtSaveToPropertiesButtonClick(Sender: TObject;
  25.       AButtonIndex: Integer);
  26.     procedure FormCreate(Sender: TObject);
  27.     procedure btnOkClick(Sender: TObject);
  28.   private
  29.     { Private declarations }
  30.     FXml:TNativeXml;
  31.     function CheckInput:Boolean;
  32.     function UserExsit(EmailAddr:string):Boolean;
  33.     //procedure InitData;
  34.   public
  35.     { Public declarations }
  36.   end;
  37. var
  38.   frmNewSMTP: TfrmNewSMTP;
  39. implementation
  40. uses uCommon, ufrmMain, uMyXml;
  41. {$R *.dfm}
  42. function TfrmNewSMTP.CheckInput: Boolean;
  43. begin
  44.   Result:=False;
  45.   if (edtPopServer.Text='') then
  46.   begin
  47.     ShowMessage('pop3服务器地址不能为空');
  48.     Exit;
  49.   end;
  50.   if (edtSaveTo.Text='') then
  51.   begin
  52.     ShowMessage('邮件保存路径不能为空');
  53.     Exit;
  54.   end;
  55.   if  not TEMailAddress.IsEmail(edtEmailAccunt.Text) then
  56.   begin
  57.     ShowMessage('不是有效的邮箱账号');
  58.     Exit;
  59.   end;
  60.   if (edtPwd.Text='') then
  61.   begin
  62.     ShowMessage('邮箱密码不能为空');
  63.     Exit;
  64.   end;
  65.   if UserExsit(trim(edtEmailAccunt.Text)) then
  66.   begin
  67.     ShowMessage('邮箱账号已经存在!');
  68.     Exit;
  69.   end;
  70.   Result:=True;
  71. end;
  72. procedure TfrmNewSMTP.edtSaveToPropertiesButtonClick(Sender: TObject;
  73.   AButtonIndex: Integer);
  74. begin
  75.   if SelectDir.Execute then
  76.     edtSaveTo.Text:=SelectDir.Directory;
  77. end;
  78. procedure TfrmNewSMTP.FormCreate(Sender: TObject);
  79. begin
  80.   Fxml:=TNativeXml.Create;
  81.   Fxml.LoadFromFile(AppPath+'EmailServers.xml');
  82. end;
  83. function TfrmNewSMTP.UserExsit(EmailAddr:string): Boolean;
  84. var
  85.   smtp:TList;
  86.   //ANode:TXmlNode;
  87.   I:Integer;
  88. begin
  89.   Result:=False;
  90.   if (FXml.Root=nil) or (FXml.Root.NodeByName('pop3s')=nil) then Exit;
  91.   smtp:=TList.Create;
  92.   try
  93.     FXml.Root.NodeByName('pop3s').NodesByName('pop3',smtp);
  94.     if smtp.Count=0 then Exit;
  95.     for I:=0 to smtp.Count-1 do
  96.       if (EmailAddr= TXmlNode(smtp[I]).NodeByName('emailaddr').ValueAsString)  then
  97.       begin
  98.         result:=True;
  99.         Exit;
  100.       end;
  101.   finally
  102.     smtp.Free;
  103.   end;
  104. end;
  105. procedure TfrmNewSMTP.btnOkClick(Sender: TObject);
  106. var
  107.   MyXml:TMyXml;
  108. begin
  109.   if not CheckInput then Exit;
  110.   MyXml:=TMyXml.Create(AppPath+'EmailServers.xml');
  111.   try
  112.     MyXml.NewPop3(edtPopServer.Text,edtEmailAccunt.Text,edtPwd.Text,edtSaveto.Text);
  113.   finally
  114.     MyXml.Free;
  115.   end;
  116.   ufrmMain.frmMain.LoadEmails(frmMain.tvEMail);
  117.   self.ModalResult:=mrOk;
  118. end;
  119. end.