亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? smtpprot.pas

?? 包含常用Internet協議TCP,UDP、HTTP、FTP、Telnet等
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
                                                     write FOnResponse;
        property OnGetData : TSmtpGetDataEvent       read  FOnGetData
                                                     write FOnGetData;
        property OnHeaderLine : TSmtpHeaderLineEvent read  FOnHeaderLine
                                                     write FOnHeaderLine;
        property OnProcessHeader  : TSmtpProcessHeaderEvent
                                                     read  FOnProcessHeader
                                                     write FOnProcessHeader;
        property OnRequestDone : TSmtpRequestDone    read  FOnRequestDone
                                                     write FOnRequestDone;
        property OnStateChange : TNotifyEvent        read  FOnStateChange
                                                     write FOnStateChange;
        property OnSessionConnected : TSessionConnected
                                                     read  FOnSessionConnected
                                                     write FOnSessionConnected;
        property OnSessionClosed : TSessionClosed
                                                     read  FOnSessionClosed
                                                     write FOnSessionClosed;
    end;

    { Descending component adding MIME (file attach) support }
    TSmtpCli = class(TCustomSmtpClient)
    protected
        FEmailBody    : TStrings; { Message body text         }
        FEmailFiles   : TStrings; { File names for attachment }
        FCurrentFile  : Integer;  { Current file being sent   }
        FMimeBoundary : String;   { Message parts boundary    }
        FFile         : File;
        FFileStarted  : Boolean;
        FBodyFlag     : Boolean;
        FBodyLine     : Integer;
        FOnAttachContentType : TSmtpAttachmentContentType;
        FOnAttachHeader      : TSmtpAttachHeader;
        procedure   TriggerAttachContentType(FileNumber      : Integer;
                                             var FileName    : String;
                                             var ContentType : String); virtual;
        procedure   TriggerAttachHeader(FileNumber : Integer;
                                        FileName   : String;
                                        HdrLines   : TStrings); virtual;
        procedure   TriggerGetData(LineNum  : Integer;
                                   MsgLine  : PChar;
                                   MaxLen   : Integer;
                                   var More : Boolean); override;
        procedure   TriggerHeaderLine(Line : PChar; Size : Integer); override;
        procedure   SetEMailFiles(newValue : TStrings);
        procedure   PrepareEMail;
    public
        constructor Create(AOwner : TComponent); override;
        destructor  Destroy;                     override;
        procedure   Data;                        override;
    published
        property Host;
        property Port;
        property SignOn;
        property FromName;
        property RcptName;
        property MailMessage;
        property HdrFrom;
        property HdrTo;
        property HdrReplyTo;
        property HdrReturnPath;
        property HdrSubject;
        property HdrSender;
	property State;
        property CharSet;
        property ContentType;
        property ErrorMessage;
        property LastResponse;
        property Tag;
        property OnDisplay;
        property OnCommand;
        property OnResponse;
        property OnGetData;
        property OnHeaderLine;
        property OnProcessHeader;
        property OnRequestDone;
        property OnSessionConnected;
        property OnSessionClosed;
        property EmailFiles : TStrings               read  FEmailFiles
                                                     write SetEmailFiles;
        property OnAttachContentType : TSmtpAttachmentContentType
                                                     read  FOnAttachContentType
                                                     write FOnAttachContentType;
        property OnAttachHeader  : TSmtpAttachHeader read  FOnAttachHeader
                                                     write FOnAttachHeader;
    end;

    { TSyncSmtpCli add synchronous functions. You should avoid using this   }
    { component because synchronous function, apart from being easy, result }
    { in lower performance programs.                                        }
    TSyncSmtpCli = class(TSmtpCli)
    protected
        FTimeout       : Integer;                 { Given in seconds }
        FTimeStop      : LongInt;                 { Milli-seconds    }
        FMultiThreaded : Boolean;
        function WaitUntilReady : Boolean; virtual;
        function Synchronize(Proc : TSmtpNextProc) : Boolean;
    public
        constructor Create(AOwner : TComponent); override;
        function    ConnectSync  : Boolean; virtual;
        function    HeloSync     : Boolean; virtual;
        function    VrfySync     : Boolean; virtual;
        function    MailFromSync : Boolean; virtual;
        function    RcptToSync   : Boolean; virtual;
        function    DataSync     : Boolean; virtual;
        function    QuitSync     : Boolean; virtual;
        function    RsetSync     : Boolean; virtual;
        function    AbortSync    : Boolean; virtual;
        function    OpenSync     : Boolean; virtual;
        function    MailSync     : Boolean; virtual;
    published
        property Timeout : Integer       read  FTimeout
                                         write FTimeout;
        property MultiThreaded : Boolean read  FMultiThreaded
                                         write FMultiThreaded;
    end;

{ Function to convert a TDateTime to an RFC822 timestamp string }
function Rfc822DateTime(t : TDateTime) : String;

procedure Register;

implementation

{$B-} { Partial boolean evaluation }

type
  TLookup = array [0..64] of Char;

const
  Base64Out: TLookup =
    (
    'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
    'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
    'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
    'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/', '='
   );


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{$IFDEF VER80}
procedure SetLength(var S: string; NewLength: Integer);
begin
    S[0] := chr(NewLength);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function RTrim(Str : String) : String;
var
    i : Integer;
begin
    i := Length(Str);
    while (i > 0) and (Str[i] = ' ') do
        i := i - 1;
    Result := Copy(Str, 1, i);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function LTrim(Str : String) : String;
var
    i : Integer;
begin
    if Str[1] <> ' ' then             { Petite optimisation: pas d'espace   }
        Result := Str
    else begin
        i := 1;
        while (i <= Length(Str)) and (Str[i] = ' ') do
            i := i + 1;
        Result := Copy(Str, i, Length(Str) - i + 1);
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function Trim(Str : String) : String;
begin
    Result := LTrim(Rtrim(Str));
end;
{$ENDIF}


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function stpblk(PValue : PChar) : PChar;
begin
    Result := PValue;
    while Result^ in [' ', #9, #10, #13] do
        Inc(Result);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{$I+}   { Activate I/O check (EInOutError exception generated) }

{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomSmtpClient.InitUUEncode(var hFile: File; sFile: string);
var
    OldFileMode : Byte;
begin
    AssignFile(hFile, sFile);
    OldFileMode := FileMode;
    FileMode := 0; { Force readonly }
    try
        Reset(hFile, 1);
    finally
        FileMode := OldFileMode;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomSmtpClient.DoUUEncode(var hFile: File; var sLine: string; var More: boolean);
var
    Count     : integer;
    DataIn    : array [0..2] of byte;
    DataOut   : array [0..80] of byte;
    ByteCount : integer;
    i         : integer;
begin
    Count := 0;
{$I-}
    while not Eof(hFile) do begin
{$I+}
        BlockRead(hFile, DataIn, 3, ByteCount);
        DataOut[Count]     := (DataIn[0] and $FC) shr 2;
        DataOut[Count + 1] := (DataIn[0] and $03) shl 4;
        if ByteCount > 1 then begin
            DataOut[Count + 1] := DataOut[Count + 1] +
                                  (DataIn[1] and $F0) shr 4;
            DataOut[Count + 2] := (DataIn[1] and $0F) shl 2;
            if ByteCount > 2 then begin
                DataOut[Count + 2] := DataOut[Count + 2] +
                                      (DataIn[2] and $C0) shr 6;
                DataOut[Count + 3] := (DataIn[2] and $3F);
            end
            else begin
                DataOut[Count + 3] := $40;
            end;
        end
        else begin
            DataOut[Count + 2] := $40;
            DataOut[Count + 3] := $40;
        end;

        for i := 0 to 3 do
            DataOut[Count + i] := Byte(Base64Out[DataOut[Count + i]]);

        Count := Count + 4;

        if Count > 59 then
            break;
    end;

    DataOut[Count] := $0;
    sLine := StrPas(@DataOut[0]);

{$I-}
    More := not Eof(hFile);
{$I+}
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomSmtpClient.EndUUEncode(var hFile: File);
begin
    CloseFile(hFile);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
constructor TCustomSmtpClient.Create(AOwner : TComponent);
begin
    inherited Create(AOwner);
    FWindowHandle            := AllocateHWnd(WndProc);
    FWSocket                 := TWSocket.Create(nil);
    FWSocket.OnSessionClosed := WSocketSessionClosed;
    FState                   := smtpReady;
    FRcptName                := TStringList.Create;
    FMailMessage	     := TStringList.Create;
    FPort                    := 'smtp';
    FCharSet                 := 'iso-8859-1';
    SetContentType(smtpPlainText);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
destructor TCustomSmtpClient.Destroy;
begin
    if Assigned(FWSocket) then begin
        FWSocket.Destroy;
        FWSocket := nil;
    end;
    if Assigned(FHdrLines) then begin
        FHdrLines.Destroy;
        FHdrLines := nil;
    end;

    FMailMessage.Destroy;
    FRcptName.Destroy;

    DeallocateHWnd(FWindowHandle);
    inherited Destroy;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomSmtpClient.WndProc(var MsgRec: TMessage);
begin
     with MsgRec do begin
         case Msg of
         WM_SMTP_REQUEST_DONE : WMSmtpRequestDone(MsgRec);
         else
             Result := DefWindowProc(Handle, Msg, wParam, lParam);
         end;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomSmtpClient.WMSmtpRequestDone(var msg: TMessage);
begin
    if Assigned(FOnRequestDone) then
        FOnRequestDone(Self, FRequestType, Msg.LParam);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function GetInteger(Data : PChar; var Number : Integer) : PChar;
var
    bSign : Boolean;
begin
    Number := 0;
    Result := StpBlk(Data);

    if (Result = nil) then
        Exit;

    { Remember the sign }
    if Result^ in ['-', '+'] then begin
        bSign := (Result^ = '-');
        Inc(Result);
    end
    else
        bSign  := FALSE;

    { Convert any number }
    while (Result^ <> #0) and (Result^ in ['0'..'9']) do begin
        Number := Number * 10 + ord(Result^) - ord('0');
        Inc(Result);
    end;

    { Correct for sign }
    if bSign then
        Number := -Number;
end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产成人在线| 久久66热偷产精品| 日韩电影免费在线| 国产成人免费av在线| 在线欧美日韩国产| 国产无遮挡一区二区三区毛片日本| 亚洲色图丝袜美腿| 国产一区二区三区四区五区美女| 欧美三级在线播放| 亚洲图片激情小说| 国内不卡的二区三区中文字幕| 色天天综合久久久久综合片| 国产亚洲欧美一级| 日韩成人精品在线观看| 97精品国产97久久久久久久久久久久| 欧美成人精品二区三区99精品| 亚洲午夜私人影院| 91免费观看在线| 国产精品对白交换视频| 国产精品一二三在| 久久综合色一综合色88| 日韩专区欧美专区| 欧美日本一道本| 亚洲不卡一区二区三区| 在线中文字幕一区二区| 亚洲男同1069视频| 91丨porny丨户外露出| 国产女同性恋一区二区| 国产一区二区三区电影在线观看 | 国产精品视频第一区| 久草这里只有精品视频| 欧美r级电影在线观看| 免费欧美高清视频| 日韩欧美国产综合一区| 久久99久国产精品黄毛片色诱| 日韩午夜在线观看| 麻豆精品新av中文字幕| 欧美一区二区三区男人的天堂| 亚洲va欧美va国产va天堂影院| 欧美日韩午夜影院| 亚洲国产精品久久人人爱蜜臀| 色爱区综合激月婷婷| 亚洲午夜三级在线| 日韩欧美一区二区在线视频| 午夜精品久久久久| 在线播放中文字幕一区| 青青草国产精品97视觉盛宴| 欧美一区二区免费视频| 狠狠久久亚洲欧美| 欧美国产1区2区| 91麻豆精品视频| 亚洲高清视频在线| 日韩免费视频一区| 国产精品伊人色| 亚洲精品成a人| 91麻豆精品国产自产在线观看一区| 免费高清成人在线| 中文文精品字幕一区二区| 日本精品视频一区二区三区| 日韩精品一区第一页| 国产人妖乱国产精品人妖| 91免费版在线| 免费观看成人av| 国产精品久久99| 欧美人妇做爰xxxⅹ性高电影| 久久久99久久| 国产日韩欧美高清在线| 久久婷婷国产综合精品青草| 国产suv一区二区三区88区| 亚洲色图制服诱惑| 日韩一区二区三区观看| av电影天堂一区二区在线| 亚洲国产精品一区二区www| 久久日韩精品一区二区五区| 91久久人澡人人添人人爽欧美| 日韩av二区在线播放| 亚洲欧洲av另类| 精品日本一线二线三线不卡| 一本一道综合狠狠老| 久久99精品久久久久久国产越南| 亚洲日本一区二区| 26uuu亚洲| 欧美精品第1页| 91美女视频网站| 国产资源在线一区| 亚洲第一主播视频| 亚洲日穴在线视频| 国产农村妇女毛片精品久久麻豆 | 97久久精品人人澡人人爽| 蜜桃精品视频在线观看| 亚洲三级电影网站| 中文字幕精品一区| 欧美va在线播放| 欧美日韩国产综合草草| 一本一道波多野结衣一区二区| 国内精品伊人久久久久av一坑| 午夜视频久久久久久| 伊人开心综合网| 亚洲免费观看高清| 国产精品久久久久影院亚瑟 | 精品视频全国免费看| av亚洲精华国产精华精华| 国产激情91久久精品导航 | 椎名由奈av一区二区三区| 久久久综合精品| 久久综合九色综合欧美亚洲| 欧美日韩大陆一区二区| 欧美丝袜丝交足nylons图片| 97国产一区二区| av在线一区二区三区| 波波电影院一区二区三区| 国产成人在线视频网站| 国产剧情av麻豆香蕉精品| 国产精品一区二区x88av| 捆绑变态av一区二区三区| 久久国产生活片100| 看电视剧不卡顿的网站| 精品影视av免费| 黄色日韩网站视频| 国产激情一区二区三区桃花岛亚洲| 国产一区欧美一区| 99久久婷婷国产精品综合| www.在线成人| 色综合夜色一区| 欧美日韩久久一区二区| 91精品国产麻豆国产自产在线 | 亚洲成人福利片| 日韩精品一区第一页| 蜜臀91精品一区二区三区 | 亚洲成av人片在线| 视频在线在亚洲| 国内外精品视频| 成人av午夜电影| 欧美视频在线观看一区| 欧美一级理论片| 欧美激情在线看| 一区二区三区视频在线看| 日韩1区2区3区| 丰满少妇在线播放bd日韩电影| 91亚洲资源网| 日韩一区国产二区欧美三区| 久久久一区二区三区捆绑**| 亚洲男人天堂av| 麻豆一区二区三| 99久久夜色精品国产网站| 538在线一区二区精品国产| 亚洲精品一区二区三区四区高清| 国产目拍亚洲精品99久久精品| 亚洲精品高清在线| 久久精品免费观看| 91在线视频18| 精品女同一区二区| 依依成人精品视频| 国产麻豆91精品| 欧美少妇性性性| 中文一区二区在线观看| 首页欧美精品中文字幕| av一区二区三区黑人| 日韩欧美中文字幕制服| 亚洲人123区| 国产一区二区按摩在线观看| 色综合亚洲欧洲| 国产网站一区二区| 日本va欧美va瓶| 91国模大尺度私拍在线视频| 欧美电影免费观看完整版| 一区二区在线电影| 成人av高清在线| 精品日本一线二线三线不卡| 亚洲一区在线视频| 99精品国产91久久久久久| 精品国产三级a在线观看| 亚洲bt欧美bt精品| 91在线观看免费视频| 欧美激情综合五月色丁香| 美女mm1313爽爽久久久蜜臀| 欧美亚洲一区二区三区四区| 欧美韩国日本不卡| 久久成人久久爱| 日韩欧美中文一区二区| 亚洲v中文字幕| 欧美中文字幕久久| 亚洲免费色视频| 99久久精品国产网站| 久久久综合激的五月天| 精品综合久久久久久8888| 91精品国产乱码久久蜜臀| 亚洲成人中文在线| 欧美视频第二页| 亚洲成人午夜影院| 91行情网站电视在线观看高清版| 国产精品美女一区二区| 成人午夜电影网站| 国产精品热久久久久夜色精品三区 | 色网综合在线观看| 亚洲欧洲国产日韩| 99精品国产热久久91蜜凸| 亚洲欧洲成人自拍| 色婷婷久久久亚洲一区二区三区| 国产精品成人一区二区艾草|