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

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

?? idsmtp.pas

?? delphi indy9.0.18組件包
?? PAS
字號:
{ $HDR$}
{**********************************************************************}
{ Unit archived using Team Coherence                                   }
{ Team Coherence is Copyright 2002 by Quality Software Components      }
{                                                                      }
{ For further information / comments, visit our WEB site at            }
{ http://www.TeamCoherence.com                                         }
{**********************************************************************}
{}
{ $Log:  10323: IdSMTP.pas 
{
{   Rev 1.0    2002.11.12 10:51:30 PM  czhower
}
unit IdSMTP;

interface

uses
  Classes,
  IdAssignedNumbers,
  IdEMailAddress,
  IdGlobal,
  IdHeaderList,
  IdMessage, IdMessageClient;

const
  IdDEF_UseEhlo = TRUE; //APR: default behavior

type
  TAuthenticationType = (atNone, atLogin);

  TIdSMTP = class(TIdMessageClient)
  protected
    {This is just an internal flag we use to determine if we already
     authenticated to the server }
    FDidAuthenticate : Boolean;
    FAuthenticationType: TAuthenticationType;
    FAuthSchemesSupported: TStringList;
    FMailAgent: string;
    {HELO Login}
    FHeloName : String;
    FUseEhlo: Boolean; //APR: for OLD STUPID server's    {Do not Localize}
    //
    procedure GetAuthTypes;
    function IsAuthProtocolAvailable (Auth: TAuthenticationType): Boolean; virtual;
    procedure SetAuthenticationType(const Value: TAuthenticationType);
    procedure SetUseEhlo(const Value: Boolean);
  public
    procedure Assign(Source: TPersistent); override;
    function Authenticate : Boolean; virtual;
    procedure Connect(const ATimeout: Integer = IdTimeoutDefault); override;
    constructor Create ( AOwner : TComponent ); override;
    destructor Destroy; override;
    procedure Disconnect; override;
    class procedure QuickSend ( const AHost, ASubject, ATo,
      AFrom, AText : String);
    procedure Send (AMsg: TIdMessage); virtual;
    procedure Expand( AUserName : String; AResults : TStrings); virtual;
    function Verify( AUserName : String) : String; virtual;
    //
    property AuthSchemesSupported: TStringList read FAuthSchemesSupported;
  published
    property AuthenticationType : TAuthenticationType read FAuthenticationType
      write SetAuthenticationType;
    property MailAgent: string read FMailAgent write FMailAgent;
    property HeloName : string read FHeloName write FHeloName;
    property UseEhlo: Boolean read FUseEhlo write SetUseEhlo default IdDEF_UseEhlo;
    property Password;
    property Username;
  end;

implementation

uses
  IdCoderMIME,
  IdResourceStrings,
  SysUtils;

{ TIdSMTP }

procedure TIdSMTP.Assign(Source: TPersistent);
begin
  if Source is TIdSMTP then begin
    AuthenticationType := TIdSMTP(Source).AuthenticationType;
    Host := TIdSMTP(Source).Host;
    MailAgent := TIdSMTP(Source).MailAgent;
    Password := TIdSMTP(Source).Password;
    Port := TIdSMTP(Source).Port;
    Username := TIdSMTP(Source).Username;
  end else begin
    inherited;
  end;
end;

function TIdSMTP.Authenticate : Boolean;

  function AuthLogin : Boolean;
  begin
    {for some odd reason wcSMTP does not accept lowercase 'LOGIN" (WcSMTP is    
     part of the WildCat Interactive Net Server}
    SendCmd('AUTH LOGIN', 334);    {Do not Localize}
    SendCmd(TIdEncoderMIME.EncodeString(Username), 334);
    SendCmd(TIdEncoderMIME.EncodeString(Password), 235);
    Result := True;
  end;

begin
  Result := False;  //assume failure
  case FAUthenticationType of
   atLogin : Result := AuthLogin;
  end;
  FDidAuthenticate := True;
end;

procedure TIdSMTP.Connect(const ATimeout: Integer = IdTimeoutDefault);
var
  NameToSend : String;
begin
  inherited;
  try
    GetResponse([220]);
    FAuthSchemesSupported.Clear;
    if Length(FHeloName) > 0 then
      NameToSend := FHeloName
    else
      NameToSend := LocalName;
    if FUseEhlo and (SendCmd('EHLO ' + NameToSend )=250) then begin //APR: user can prevent EHLO    {Do not Localize}
      GetAuthTypes;
    end
    else begin
      SendCmd( 'HELO ' + NameToSend, 250 );    {Do not Localize}
    end;
  except
    Disconnect;
    Raise;
  end;
end;

constructor TIdSMTP.Create(AOwner: TComponent);
begin
  inherited;
  FAuthSchemesSupported := TStringList.Create;
  FAuthSchemesSupported.Duplicates := dupIgnore; //prevent duplicates in the supported AUTH protocol list
  FUseEhlo:=IdDEF_UseEhlo;
  FAuthenticationType:=atNone;
  Port := IdPORT_SMTP;
end;

destructor TIdSMTP.Destroy;
begin
  FreeAndNil ( FAuthSchemesSupported );
  inherited;
end;

procedure TIdSMTP.Disconnect;
begin
  try
    if Connected then  begin
      WriteLn('QUIT');    {Do not Localize}
    end;
  finally
    inherited;
    FDidAuthenticate := False;
  end;
end;

procedure TIdSMTP.Expand(AUserName: String; AResults: TStrings);
begin
  SendCMD('EXPN ' + AUserName, [250, 251]);    {Do not Localize}
end;

procedure TIdSMTP.GetAuthTypes;
var
  i: Integer;
  s: string;
  LEntry : String;
begin
  for i := 0 to LastCmdResult.Text.Count - 1 do begin
    s := UpperCase(LastCmdResult.Text[i]);
    if AnsiSameText(Copy(s, 1, 5), 'AUTH ') or AnsiSameText(Copy(s, 1, 5), 'AUTH=') then begin    {Do not Localize}
      s := Copy(s, 5, MaxInt);
      while Length(s) > 0 do begin
        s := StringReplace(s, '=', ' ', [rfReplaceAll]);    {Do not Localize}
        LEntry := Fetch(s, ' ');    {Do not Localize}
        if FAuthSchemesSupported.IndexOf(LEntry) = -1 then begin
          FAuthSchemesSupported.Add(LEntry);
        end;
      end;
    end;
  end;
end;

function TIdSMTP.IsAuthProtocolAvailable(
  Auth : TAuthenticationType ) : Boolean;
begin
  case Auth of
    atLogin : Result := ( FAuthSchemesSupported.IndexOf ( 'LOGIN' ) <> -1 );    {Do not Localize}
  else
    Result := False;
  end;
end;

class procedure TIdSMTP.QuickSend (const AHost, ASubject, ATo, AFrom, AText : String);
var
  LSMTP: TIdSMTP;
  LMsg: TIdMessage;
begin
  LSMTP := TIdSMTP.Create(nil);
  try
    LMsg := TIdMessage.Create(LSMTP);
    try
      with LMsg do
      begin
        Subject := ASubject;
        Recipients.EMailAddresses := ATo;
        From.Text := AFrom;
        Body.Text := AText;
      end;
      with LSMTP do
      begin
        Host := AHost;
        Connect; try;
          Send(LMsg);
        finally Disconnect; end;
      end;
    finally
      FreeAndNil(LMsg);
    end;
  finally
    FreeAndNil(LSMTP);
  end;
end;

procedure TIdSMTP.Send(AMsg: TIdMessage);

  procedure WriteRecipient(const AEmailAddress: TIdEmailAddressItem);
  begin
    SendCmd('RCPT TO:<' + AEMailAddress.Address + '>', [250, 251]);    {Do not Localize}
  end;

  procedure WriteRecipients(AList: TIdEmailAddressList);
  var
    i: integer;
  begin
    for i := 0 to AList.Count - 1 do begin
      WriteRecipient(AList[i]);
    end;
  end;

  function NeedToAuthenticate: Boolean;
  begin
    if FAuthenticationType <> atNone then begin
      Result := IsAuthProtocolAvailable(FAuthenticationType) and (FDidAuthenticate = False);
    end else begin
      Result := False;
    end;
  end;

begin
  SendCmd('RSET');    {Do not Localize}
  if NeedToAuthenticate then begin
    Authenticate;
  end;
  SendCmd('MAIL FROM:<' + AMsg.From.Address + '>', 250);    {Do not Localize}
  WriteRecipients(AMsg.Recipients);
  WriteRecipients(AMsg.CCList);
  WriteRecipients(AMsg.BccList);
  SendCmd('DATA', 354);    {Do not Localize}
  AMsg.ExtraHeaders.Values['X-Mailer'] := MailAgent;    {Do not Localize}
  SendMsg(AMsg);
  SendCmd('.', 250);    {Do not Localize}
end;

procedure TIdSMTP.SetAuthenticationType(const Value: TAuthenticationType);
Begin
  FAuthenticationType:= Value;
  if Value=atLogin then FUseEhlo:=TRUE;
End;//

procedure TIdSMTP.SetUseEhlo(const Value: Boolean);
Begin
  FUseEhlo:= Value;
  if NOT Value then FAuthenticationType:=atNone;
End;//

function TIdSMTP.Verify(AUserName: string): string;
begin
  SendCMD('VRFY ' + AUserName, [250, 251]);    {Do not Localize}
  Result := LastCmdResult.Text[0];
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产欧美在线| 日韩一区欧美二区| 久久久国产精品午夜一区ai换脸| 欧美丰满嫩嫩电影| 3d动漫精品啪啪一区二区竹菊| 欧美系列一区二区| 欧美男生操女生| 欧美日韩精品一区二区三区四区| 欧美日韩在线观看一区二区| 91搞黄在线观看| 欧美色视频在线观看| 欧美理论电影在线| 日韩三级精品电影久久久| 日韩欧美一级特黄在线播放| 日韩网站在线看片你懂的| 精品蜜桃在线看| 国产欧美一区视频| 一区二区三区在线观看网站| 亚洲国产精品精华液网站| 天堂在线亚洲视频| 国产在线精品视频| 91网页版在线| 这里只有精品99re| 久久久亚洲午夜电影| 中文字幕制服丝袜成人av| 亚洲黄一区二区三区| 琪琪久久久久日韩精品| 国产高清不卡二三区| 色婷婷av一区二区三区大白胸| 欧美日韩国产大片| 久久人人爽爽爽人久久久| 中文字幕va一区二区三区| 一区二区三区欧美视频| 麻豆高清免费国产一区| 波多野结衣91| 3d动漫精品啪啪1区2区免费| 久久一日本道色综合| 亚洲男人的天堂网| 激情综合色综合久久综合| 99vv1com这只有精品| 欧美久久婷婷综合色| 久久久久国产精品麻豆| 亚洲国产成人91porn| 国产一区二区免费视频| 在线视频一区二区三区| 2020日本不卡一区二区视频| 亚洲综合免费观看高清完整版在线 | 亚洲视频网在线直播| 日韩成人午夜电影| 97se亚洲国产综合在线| 欧美一区二区国产| 亚洲精品国产精品乱码不99| 国产一区二区福利视频| 欧美日韩高清在线| 亚洲欧美日韩国产中文在线| 韩国三级电影一区二区| 欧美日韩中文国产| 亚洲精品国久久99热| 国产美女视频一区| 欧美一区二区精品久久911| 亚洲三级电影网站| 国产91在线|亚洲| 精品国产不卡一区二区三区| 日本特黄久久久高潮 | 一区二区三区日韩欧美精品 | 国产女人18毛片水真多成人如厕 | 日韩欧美国产三级电影视频| 亚洲成在线观看| 91国产成人在线| 亚洲欧美日韩在线| 成人动漫中文字幕| 国产精品视频yy9299一区| 美女免费视频一区二区| 日韩欧美国产午夜精品| 麻豆国产精品一区二区三区| 日韩一卡二卡三卡国产欧美| 日韩精品一二三区| 91精品国产综合久久精品app| 亚洲精品国产品国语在线app| aaa亚洲精品一二三区| 国产精品三级久久久久三级| 国产91高潮流白浆在线麻豆 | 91网页版在线| 国产精品二三区| 色综合久久久久综合体桃花网| 亚洲欧美中日韩| 91福利小视频| 日韩中文字幕不卡| 日韩视频一区二区在线观看| 日本91福利区| 久久综合狠狠综合久久激情| 国产宾馆实践打屁股91| 国产欧美日本一区视频| 成人美女视频在线观看18| 国产精品伦理一区二区| 91蝌蚪国产九色| 亚洲精品免费视频| 欧美系列一区二区| 久久99精品一区二区三区| 精品成人一区二区三区四区| 国产91对白在线观看九色| 国产精品久久久久永久免费观看 | 日韩视频在线一区二区| 精品在线播放午夜| ●精品国产综合乱码久久久久| 色婷婷国产精品综合在线观看| 亚洲成人免费视| 久久久欧美精品sm网站| 一本久久a久久免费精品不卡| 欧美喷潮久久久xxxxx| 亚洲一二三四区| 国产成人在线看| 亚洲一级二级三级| 精品人在线二区三区| 成人高清av在线| 日韩激情av在线| 国产欧美一区二区在线| 欧美日韩成人在线| 国产成人亚洲精品青草天美| 亚洲精品久久久蜜桃| 欧美成人免费网站| 色婷婷精品久久二区二区蜜臀av| 久久成人免费网站| 亚洲激情自拍偷拍| 亚洲精品在线观看网站| 欧美性欧美巨大黑白大战| 国产精品正在播放| 午夜电影久久久| 国产精品久久久久aaaa| 日韩欧美卡一卡二| 欧美日韩一区二区三区在线| 国产剧情一区二区| 日本不卡视频一二三区| 一区二区三区在线视频免费观看| 久久免费的精品国产v∧| 69堂精品视频| 91香蕉国产在线观看软件| 国产成人夜色高潮福利影视| 男女男精品视频| 图片区小说区区亚洲影院| 亚洲欧美日韩国产手机在线| 国产欧美一区二区精品婷婷| www激情久久| 欧美高清精品3d| 欧美日韩欧美一区二区| 91福利社在线观看| 97精品超碰一区二区三区| 成人污污视频在线观看| 国产精品一级黄| 国产成人在线视频免费播放| 韩国v欧美v亚洲v日本v| 精品一区二区精品| 美女高潮久久久| 蜜桃久久精品一区二区| 麻豆成人免费电影| 麻豆精品视频在线观看| 麻豆精品一区二区三区| 麻豆成人久久精品二区三区红 | 美女高潮久久久| 日韩高清电影一区| 日韩av中文字幕一区二区三区| 亚洲一二三四区不卡| 丝袜美腿亚洲综合| 麻豆国产精品777777在线| 美女脱光内衣内裤视频久久影院| 麻豆一区二区99久久久久| 美女在线一区二区| 国产精品资源网站| 91网站在线观看视频| 色综合天天综合网国产成人综合天| 成人av网站在线| 在线视频综合导航| 91精品国产手机| 精品久久久久久无| 国产亚洲女人久久久久毛片| 国产亚洲成年网址在线观看| 国产精品免费视频一区| 亚洲免费伊人电影| 蜜桃视频一区二区三区 | 国产在线视频一区二区| 国产aⅴ精品一区二区三区色成熟| 粉嫩绯色av一区二区在线观看| a级精品国产片在线观看| 欧美丝袜自拍制服另类| 精品国产三级a在线观看| 亚洲欧美综合在线精品| 天天操天天色综合| 国产91精品精华液一区二区三区| 99re在线精品| 日韩欧美视频一区| ...av二区三区久久精品| 五月天一区二区| 丰满亚洲少妇av| 欧美一区二区三区喷汁尤物| 久久精品视频免费观看| 亚洲午夜精品在线| 国产精品1区2区3区在线观看| 欧美性猛片xxxx免费看久爱| 久久蜜臀精品av| 三级在线观看一区二区|