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

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

?? smtpprot.pas

?? 包含常用Internet協議TCP,UDP、HTTP、FTP、Telnet等
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
         if aBias < 0 then
             Result[1] := '+';
    end;
end;
{$ENDIF}


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function Rfc822DateTime(t : TDateTime) : String;
var
    I                   : Integer;
    SaveShortDayNames   : array[1..7] of string;
    SaveShortMonthNames : array[1..12] of string;
const
    MyShortDayNames: array[1..7] of string =
        ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
    MyShortMonthNames: array[1..12] of string =
        ('Jan', 'Feb', 'Mar', 'Apr',
         'May', 'Jun', 'Jul', 'Aug',
         'Sep', 'Oct', 'Nov', 'Dec');
begin
    if ShortDayNames[1] = MyShortDayNames[1] then
        Result := FormatDateTime('ddd, d mmm yyyy hh:mm:ss', t) +
                  ' ' + TimeZoneBias
    else begin
        { We used a localized Delphi version, the day and month names are no }
        { more english names ! We need to save and replace them              }
        for I := Low(ShortDayNames) to High(ShortDayNames) do begin
            SaveShortDayNames[I] := ShortDayNames[I];
            ShortDayNames[I]     := MyShortDayNames[I];
        end;

        for I := Low(ShortMonthNames) to High(ShortMonthNames) do begin
            SaveShortMonthNames[I] := ShortMonthNames[I];
            ShortMonthNames[I]     := MyShortMonthNames[I];
        end;

        Result := FormatDateTime('ddd, d mmm yyyy hh:mm:ss', t) +
                  ' ' + TimeZoneBias;

        for I := Low(ShortDayNames) to High(ShortDayNames) do
            ShortDayNames[I] := SaveShortDayNames[I];
        for I := Low(ShortMonthNames) to High(ShortMonthNames) do
            ShortMonthNames[I] := SaveShortMonthNames[I];
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomSmtpClient.TriggerProcessHeader(HdrLines : TStrings);
begin
    if Assigned(FOnProcessHeader) then
        FOnProcessHeader(Self, HdrLines);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomSmtpClient.TriggerCommand(Msg : String);
begin
    if Assigned(FOnCommand) then
        FOnCommand(Self, Msg);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomSmtpClient.TriggerResponse(Msg : String);
begin
    if Assigned(FOnResponse) then
        FOnResponse(Self, Msg);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomSmtpClient.ClearErrorMessage;
begin
    FErrorMessage := '';
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomSmtpClient.SetErrorMessage;
begin
    if FErrorMessage = '' then
        FErrorMessage := FLastResponse;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
constructor TSmtpCli.Create(AOwner : TComponent);
begin
    inherited Create(AOwner);
    FEmailBody  := TStringList.Create;
    FEmailFiles := TStringList.Create;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
destructor TSmtpCli.Destroy;
begin
    if Assigned(FEmailBody) then begin
        FEMailBody.Destroy;
        FEMailBody := nil;
    end;
    if Assigned(FEmailFiles) then begin
        FEmailFiles.Destroy;
        FEmailFiles := nil;
    end;
    inherited Destroy;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSmtpCli.TriggerAttachContentType(
    FileNumber      : Integer;
    var FileName    : String;
    var ContentType : String);
begin
    if Assigned(FOnAttachContentType) then
        FOnAttachContentType(Self, FileNumber, FileName, ContentType);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSmtpCli.TriggerAttachHeader(
    FileNumber : Integer;
    FileName   : String;
    HdrLines   : TStrings);
begin
    if Assigned(FOnAttachHeader) then
        FOnAttachHeader(Self, FileNumber, FileName, HdrLines);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSmtpCli.TriggerGetData(
    LineNum  : Integer;
    MsgLine  : PChar;
    MaxLen   : Integer;
    var More : Boolean);
var
    sLine        : String;
    FileName     : String;
    sFileName    : String;
    sContentType : String;
begin
    if FEmailBody.Count > 0 then begin
        StrPCopy(MsgLine, FEmailBody[0]);
        FEmailBody.Delete(0);
        More := TRUE;
        Exit;
    end;

    if FBodyFlag then begin
        Inc(FBodyLine);
        inherited TriggerGetData(FBodyLine, MsgLine, MaxLen, More);
        if More then
            Exit;
        FBodyFlag := FALSE;
    end;

    if not FFileStarted then begin
        if (not Assigned(FEMailFiles)) or
           (FEmailFiles.Count <= FCurrentFile) then begin
            { No file to send }
            More := FALSE;
            Exit;
        end;

        StrPCopy(MsgLine, '');
        FileName := FEmailFiles[FCurrentFile];
        InitUUEncode(FFile, FileName);
        sFileName    := ExtractFileName(FileName);
        sContentType := 'application/octet-stream';
        TriggerAttachContentType(FCurrentFile, sFileName, sContentType);
        FEmailBody.Add('--' + FMimeBoundary);
        FEmailBody.Add('Content-Type: ' + sContentType + ';');
        FEmailBody.Add(#9'name="' + sFileName + '"');
        FEmailBody.Add('Content-Transfer-Encoding: base64');
        FEmailBody.Add('Content-Disposition: attachment;');
        FEmailBody.Add(#9'filename="' + ExtractFileName(FileName) + '"');
        TriggerAttachHeader(FCurrentFile, sFileName, FEmailBody);
        FEmailBody.Add('');
        FFileStarted := TRUE;
        More := TRUE;
        Exit;
    end;

    DoUUEncode(FFile, sLine, More);
    StrPCopy(MsgLine, sLine);
    if not More then begin  { we hit the end of file. }
        EndUUEncode(FFile);
        FFileStarted := FALSE;
        Inc(FCurrentFile);
        if (FEmailFiles.Count <= FCurrentFile) then begin
            FEmailBody.Add('');
            FEmailBody.Add('--' + FMimeBoundary + '--');
        end;
        More := TRUE;
        Exit;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSmtpCli.TriggerHeaderLine(Line : PChar; Size : Integer);
begin
    { if we have a MIME type message, then replace the content-type }
    { header with the proper MIME content-type.                     }
    if FMimeBoundary <> '' then begin
        if StrLIComp('CONTENT-TYPE:', Line, 13) = 0 then
            StrPCopy(Line, 'Content-Type: multipart/mixed;'#13#10#9'boundary="'
                     + FMimeBoundary + '"');
    end;
    inherited TriggerHeaderLine(Line, Size);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSmtpCli.SetEMailFiles(newValue : TStrings);
var
    I        : Integer;
    FilePath : String;
begin
    FEMailFiles.Clear;
    if not Assigned(newValue) then
        Exit;
    for I := 0 to newValue.Count - 1 do begin
        FilePath := Trim(newValue.Strings[I]);
        { Ignore any empty file name (a very common error !) }
        if FilePath > '' then begin
            { Check if file exists and raise an exception if not }
            if FileExists(FilePath) then
                FEMailFiles.Add(FilePath)
            else
                raise SmtpException.Create('File not found ''' + FilePath + '''');
        end;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSmtpCli.Data;
begin
    PrepareEMail;
    inherited Data;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSmtpCli.PrepareEMail;
var i : integer;
begin
    FBodyFlag    := TRUE;
    FCurrentFile := 0;
    FBodyLine    := 0;
    FFileStarted := FALSE;

    FEmailBody.Clear;
    if Assigned(FEMailFiles) and (FEmailFiles.Count > FCurrentFile) then begin
        FMimeBoundary := '= Multipart Boundary '
                              + FormatDateTime('mmddyyhhnn', Now);

        FEmailBody.Add('This is a multipart MIME message.');
        FEmailBody.Add('');
        FEmailBody.Add('--' + FMimeBoundary);
        FEmailBody.Add('Content-Type: ' + FContentTypeStr + '; charset="' + FCharSet + '"');
        FEmailBody.Add('Content-Transfer-Encoding: 7bit');
        FEmailBody.Add('');
    end
    else
        FMimeBoundary := '';

    for i := 0 to FMailMessage.Count - 1 do
      FEmailBody.Add(FMailMessage.Strings[I]);
   
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
constructor TSyncSmtpCli.Create(AOwner : TComponent);
begin
    inherited Create(AOwner);
    FTimeout := 15;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function TSyncSmtpCli.WaitUntilReady : Boolean;
begin
    Result := TRUE;           { Suppose success }
    FTimeStop := Integer(GetTickCount) + FTimeout * 1000;
    while TRUE do begin
        if FState = smtpReady then begin
            { Back to ready state, the command is finiched }
            Result := (FRequestResult = 0);
            break;
        end;

        if  Application.Terminated or
            ((FTimeout > 0) and (Integer(GetTickCount) > FTimeStop)) then begin
            { Application is terminated or timeout occured }
            inherited Abort;
            FErrorMessage := '426 Timeout';
            FStatusCode   := 426;
            Result        := FALSE; { Command failed }
            break;
        end;
{$IFNDEF VER80}
        if FMultiThreaded then
            FWSocket.ProcessMessages
        else
{$ENDIF}
            Application.ProcessMessages;
{$IFNDEF VER80}
        { Do not use 100% CPU, but slow down transfert on high speed LAN }
        Sleep(0);
{$ENDIF}
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function TSyncSmtpCli.Synchronize(Proc : TSmtpNextProc) : Boolean;
begin
    try
        Proc;
        Result := WaitUntilReady;
    except
        Result := FALSE;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function TSyncSmtpCli.ConnectSync : Boolean;
begin
    Result := Synchronize(Connect);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function TSyncSmtpCli.HeloSync : Boolean;
begin
    Result := Synchronize(Helo);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function TSyncSmtpCli.VrfySync : Boolean;
begin
    Result := Synchronize(Vrfy);
end;


{* * * * * * * * *

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲男人的天堂一区二区| 美女爽到高潮91| 五月激情综合色| 久久精品国产第一区二区三区| 国产一区 二区 三区一级| 一本久道久久综合中文字幕 | 欧美日韩日日摸| 欧美草草影院在线视频| 1024成人网色www| 日本不卡的三区四区五区| 国产成人av电影在线| 欧美亚洲免费在线一区| 国产欧美日韩视频在线观看| 一区二区三区中文在线| 亚洲人成网站色在线观看| 狠狠色丁香久久婷婷综合_中 | 国产欧美综合在线观看第十页| 国产亚洲婷婷免费| 香蕉影视欧美成人| 97精品电影院| 久久久久久9999| 日韩成人一级大片| 色婷婷综合久久久久中文一区二区 | 日韩电影在线观看网站| www.成人网.com| 精品嫩草影院久久| 亚洲成年人影院| 91麻豆蜜桃一区二区三区| 久久天天做天天爱综合色| 天天做天天摸天天爽国产一区| 成人免费高清视频在线观看| 欧美成人video| 天堂成人国产精品一区| 在线看一区二区| 国产精品第13页| 国产成人啪午夜精品网站男同| 欧美一区二区播放| 婷婷久久综合九色国产成人| 国产成人自拍在线| 久久久久久久久久久久久久久99| 日韩影视精彩在线| 欧美日韩视频在线一区二区| 亚洲三级在线看| 99re视频精品| 久久久综合视频| 经典一区二区三区| 欧美一区二区美女| 亚洲综合视频在线| jiyouzz国产精品久久| 久久久久久久免费视频了| 久久99久久久久| 欧美videos大乳护士334| 蜜臀av在线播放一区二区三区| 91麻豆精品国产91久久久资源速度| 洋洋av久久久久久久一区| 色综合久久久久综合| 亚洲精品一二三| 色婷婷综合久久| 一级特黄大欧美久久久| 在线日韩av片| 亚洲一区二区3| 欧美嫩在线观看| 免费观看91视频大全| 精品对白一区国产伦| 国产成人精品免费在线| 国产精品亲子乱子伦xxxx裸| 99国产精品久| 伊人开心综合网| 欧美最新大片在线看| 日韩精品成人一区二区三区| 日韩美女天天操| 国产成人综合网| 一区二区三区在线观看网站| 3atv一区二区三区| 老汉av免费一区二区三区| 久久久久久麻豆| 色综合久久中文字幕| 午夜精彩视频在线观看不卡| 精品国产乱码久久久久久图片| 黄色日韩三级电影| 亚洲欧洲精品一区二区精品久久久| 色天天综合色天天久久| 奇米影视7777精品一区二区| 久久久天堂av| 色噜噜狠狠成人中文综合| 免费在线观看一区| 国产精品嫩草99a| 欧美日韩在线播放一区| 久久不见久久见免费视频7| 国产精品短视频| 99re在线精品| 久久国产精品第一页| 亚洲天堂久久久久久久| 欧美疯狂做受xxxx富婆| 国产福利精品导航| 亚洲亚洲精品在线观看| 精品国产91亚洲一区二区三区婷婷| fc2成人免费人成在线观看播放| 午夜精品久久久久久久久久| 久久精品视频在线看| 欧美日韩黄色一区二区| 国产精品一品视频| 亚洲成av人片一区二区| 精品美女一区二区| 91久久国产综合久久| 国产精品正在播放| 婷婷六月综合网| 亚洲久本草在线中文字幕| 久久日韩粉嫩一区二区三区| 在线观看91av| 日本高清视频一区二区| 国产成人丝袜美腿| 婷婷久久综合九色综合绿巨人| 中文字幕一区二区三区精华液 | 青青草国产精品亚洲专区无| 亚洲欧美一区二区三区孕妇| 国产婷婷色一区二区三区| 欧美精品xxxxbbbb| 欧美三级电影在线看| 91在线免费播放| 色综合亚洲欧洲| 欧美综合视频在线观看| 在线观看三级视频欧美| 欧美怡红院视频| 欧美日韩一区二区在线观看视频| 欧美在线免费视屏| 欧美亚洲高清一区二区三区不卡| 在线亚洲高清视频| 精品视频资源站| 欧美一卡二卡在线| 久久免费电影网| 亚洲丝袜精品丝袜在线| 亚洲精品国产a久久久久久| 亚洲午夜电影在线| 免费观看30秒视频久久| 国产精品一区二区男女羞羞无遮挡 | 蜜臀精品一区二区三区在线观看| 久久国产精品色| 国产成人av电影在线播放| 99精品欧美一区| 精品视频在线免费观看| 欧美一区中文字幕| 国产午夜三级一区二区三| 国产精品国产三级国产专播品爱网 | 国产精品伦理在线| 亚洲免费观看高清完整版在线观看 | 亚洲一区二区欧美日韩| 美女性感视频久久| 丁香激情综合国产| 欧美日韩一区二区电影| 精品国产欧美一区二区| 欧美国产欧美综合| 亚洲一区二区三区不卡国产欧美 | 亚洲一区二区偷拍精品| 玖玖九九国产精品| 高清视频一区二区| 欧美性色欧美a在线播放| 精品剧情v国产在线观看在线| 国产精品看片你懂得| 亚洲午夜私人影院| 国产精品综合一区二区三区| 色94色欧美sute亚洲线路一久 | 欧美色综合久久| 久久久久久久久久电影| 亚洲成人福利片| 高清视频一区二区| 日韩欧美中文字幕一区| 亚洲男女毛片无遮挡| 国产老女人精品毛片久久| 欧美精品视频www在线观看| 中文字幕亚洲成人| 精品夜夜嗨av一区二区三区| 91久久精品一区二区三区| 亚洲国产精品精华液ab| 日韩精品高清不卡| 色av综合在线| 日韩码欧中文字| 国产精品亚洲一区二区三区在线 | 日韩成人av影视| 91久久人澡人人添人人爽欧美| 国产亚洲成aⅴ人片在线观看 | 高清国产一区二区三区| 日韩限制级电影在线观看| 亚洲精品成人天堂一二三| 成人少妇影院yyyy| 久久亚洲一级片| 美女免费视频一区| 91精品久久久久久蜜臀| 亚洲一区二区三区四区在线| 99久久久无码国产精品| 国产精品亲子乱子伦xxxx裸| 国产一区福利在线| 精品国产1区2区3区| 青青草国产精品97视觉盛宴 | 亚洲精品一区二区三区四区高清| 五月婷婷另类国产| 91免费国产视频网站| 精品国产网站在线观看| 国产一区在线精品| 制服丝袜亚洲网站|