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

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

?? mailsnd1.pas

?? 包含常用Internet協議TCP,UDP、HTTP、FTP、Telnet等
?? PAS
字號:
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


Author:       Fran鏾is PIETTE
Object:       How to use TSmtpCli component
Creation:     09 october 1997
Version:      2.00
EMail:        francois.piette@pophost.eunet.be   francois.piette@rtfm.be
              http://www.rtfm.be/fpiette
Support:      Use the mailing list twsocket@rtfm.be See website for details.
Legal issues: Copyright (C) 1997, 1998, 1999 by Fran鏾is PIETTE
              Rue de Grady 24, 4053 Embourg, Belgium. Fax: +32-4-365.74.56
              <francois.piette@pophost.eunet.be>

              This software is provided 'as-is', without any express or
              implied warranty.  In no event will the author be held liable
              for any  damages arising from the use of this software.

              Permission is granted to anyone to use this software for any
              purpose, including commercial applications, and to alter it
              and redistribute it freely, subject to the following
              restrictions:

              1. The origin of this software must not be misrepresented,
                 you must not claim that you wrote the original software.
                 If you use this software in a product, an acknowledgment
                 in the product documentation would be appreciated but is
                 not required.

              2. Altered source versions must be plainly marked as such, and
                 must not be misrepresented as being the original software.

              3. This notice may not be removed or altered from any source
                 distribution.

Updates:
Oct 26, 1997  V1.00 Released
Jan 10, 1998  V1.01 Added a Port property
Feb 15, 1998  V1.02 Added file attachement support
Mar 06, 1998  V1.03 Check for DisplayMemo overflow (100 lines allowed)
Aug 03, 1998  V2.00 Revised for new asynchronous SMTP component version


 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
unit MailSnd1;

interface

uses
  WinTypes, WinProcs, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, SmtpProt, StdCtrls, ExtCtrls, IniFiles;

const
    SmtpTestVersion = 2.00;

type
  TSmtpTestForm = class(TForm)
    MsgMemo: TMemo;
    DisplayMemo: TMemo;
    ToolsPanel: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Subject: TLabel;
    Label4: TLabel;
    HostEdit: TEdit;
    FromEdit: TEdit;
    ToEdit: TEdit;
    SubjectEdit: TEdit;
    SignOnEdit: TEdit;
    PortEdit: TEdit;
    Label5: TLabel;
    AttachPanel: TPanel;
    Label6: TLabel;
    FileAttachMemo: TMemo;
    InfoPanel: TPanel;
    Label7: TLabel;
    ClearDisplayButton: TButton;
    ConnectButton: TButton;
    HeloButton: TButton;
    MailFromButton: TButton;
    RcptToButton: TButton;
    DataButton: TButton;
    AbortButton: TButton;
    QuitButton: TButton;
    MailButton: TButton;
    OpenButton: TButton;
    Label8: TLabel;
    SmtpClient: TSmtpCli;
    procedure SmtpClientDisplay(Sender: TObject; Msg: String);
    procedure SmtpClientGetData(Sender: TObject; LineNum: Integer;
      MsgLine: PChar; MaxLen: Integer; var More: Boolean);
    procedure SmtpClientHeaderLine(Sender: TObject; Msg: PChar;
      Size: Integer);
    procedure FormCreate(Sender: TObject);
    procedure ClearDisplayButtonClick(Sender: TObject);
    procedure ConnectButtonClick(Sender: TObject);
    procedure SmtpClientRequestDone(Sender: TObject; RqType: TSmtpRequest;
      Error: Word);
    procedure HeloButtonClick(Sender: TObject);
    procedure MailFromButtonClick(Sender: TObject);
    procedure RcptToButtonClick(Sender: TObject);
    procedure DataButtonClick(Sender: TObject);
    procedure AbortButtonClick(Sender: TObject);
    procedure QuitButtonClick(Sender: TObject);
    procedure MailButtonClick(Sender: TObject);
    procedure OpenButtonClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    FIniFileName : String;
    FInitialized : Boolean;
    procedure BuildRcptList;
    procedure ExceptionHandler(Sender: TObject; E: Exception);
  public
    { D閏larations publiques }
  end;

var
  SmtpTestForm: TSmtpTestForm;

implementation

{$R *.DFM}
const
    SectionData   = 'Data';
    KeyHost       = 'HostName';
    KeyPort       = 'Port';
    KeyFrom       = 'From';
    KeyTo         = 'To';
    KeySubject    = 'Subject';
    KeySignOn     = 'SignOn';
    SectionWindow = 'Window';
    KeyTop        = 'Top';
    KeyLeft       = 'Left';
    KeyWidth      = 'Width';
    KeyHeight     = 'Height';

{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSmtpTestForm.FormCreate(Sender: TObject);
begin
    Application.OnException := ExceptionHandler;
    DisplayMemo.Clear;
    FIniFileName := LowerCase(ExtractFileName(Application.ExeName));
    FIniFileName := Copy(FIniFileName, 1, Length(FIniFileName) - 3) + 'ini';
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSmtpTestForm.FormShow(Sender: TObject);
var
    IniFile : TIniFile;
begin
    if not FInitialized then begin
        FInitialized := TRUE;
        IniFile := TIniFile.Create(FIniFileName);
        HostEdit.Text    := IniFile.ReadString(SectionData, KeyHost,
                                               'localhost');
        PortEdit.Text    := IniFile.ReadString(SectionData, KeyPort,
                                               'smtp');
        FromEdit.Text    := IniFile.ReadString(SectionData, KeyFrom,
                                               'first.last@company.com');
        ToEdit.Text      := IniFile.ReadString(SectionData, KeyTo,
                                               'john.doe@acme;tartempion@brol.fr');
        SubjectEdit.Text := IniFile.ReadString(SectionData, KeySubject,
                                               'This is the message subject');
        SignOnEdit.Text  := IniFile.ReadString(SectionData, KeySignOn,
                                               'your name');

        Top    := IniFile.ReadInteger(SectionWindow, KeyTop,    (Screen.Height - Height) div 2);
        Left   := IniFile.ReadInteger(SectionWindow, KeyLeft,   (Screen.Width - Width) div 2);
        Width  := IniFile.ReadInteger(SectionWindow, KeyWidth,  Width);
        Height := IniFile.ReadInteger(SectionWindow, KeyHeight, Height);

        IniFile.Free;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSmtpTestForm.FormClose(Sender: TObject;
  var Action: TCloseAction);
var
    IniFile : TIniFile;
begin
    IniFile := TIniFile.Create(FIniFileName);
    IniFile.WriteString(SectionData, KeyHost,      HostEdit.Text);
    IniFile.WriteString(SectionData, KeyPort,      PortEdit.Text);
    IniFile.WriteString(SectionData, KeyFrom,      FromEdit.Text);
    IniFile.WriteString(SectionData, KeyTo,        ToEdit.Text);
    IniFile.WriteString(SectionData, KeySubject,   SubjectEdit.Text);
    IniFile.WriteString(SectionData, KeySignOn,    SignOnEdit.Text);
    IniFile.WriteInteger(SectionWindow, KeyTop,    Top);
    IniFile.WriteInteger(SectionWindow, KeyLeft,   Left);
    IniFile.WriteInteger(SectionWindow, KeyWidth,  Width);
    IniFile.WriteInteger(SectionWindow, KeyHeight, Height);
    IniFile.Free;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{$IFDEF VER80}
function TrimRight(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 TrimLeft(Str : String) : String;
var
    i : Integer;
begin
    if Str[1] <> ' ' then
        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 := TrimLeft(TrimRight(Str));
end;
{$ENDIF}


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSmtpTestForm.BuildRcptList;
var
    Buf : String;
    I   : Integer;
begin
    SmtpClient.RcptName.Clear;
    Buf := ToEdit.Text;
    while TRUE do begin
        I := Pos(';', Buf);
        if I <= 0 then begin
            SmtpClient.RcptName.Add(Trim(Buf));
            break;
        end
        else begin
            SmtpClient.RcptName.Add(Trim(Copy(Buf, 1, I - 1)));
            Delete(Buf, 1, I);
        end;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSmtpTestForm.SmtpClientDisplay(Sender: TObject; Msg: String);
begin
    { Memo boxes are not unlimited...}
    if DisplayMemo.Lines.Count > 100 then
        DisplayMemo.Clear;
    DisplayMemo.Lines.Add(Msg);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSmtpTestForm.SmtpClientGetData(
    Sender  : TObject;
    LineNum : Integer;
    MsgLine : PChar;
    MaxLen  : Integer;
    var More: Boolean);
var
    Len : Integer;
begin
    if LineNum > MsgMemo.Lines.count then
        More := FALSE
    else begin
        Len := Length(MsgMemo.Lines[LineNum - 1]);
        { Truncate the line if too long (should wrap to next line) }
        if Len >= MaxLen then
            StrPCopy(MsgLine, Copy(MsgMemo.Lines[LineNum - 1], 1, MaxLen - 1))
        else
            StrPCopy(MsgLine, MsgMemo.Lines[LineNum - 1]);
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSmtpTestForm.SmtpClientHeaderLine(Sender: TObject; Msg: PChar;
  Size: Integer);
begin
    { This demonstrate how to add a line to the message header              }
    { Just detect one of the header lines and add text at the end of this   }
    { line. Use #13#10 to form a new line                                   }
    { Here we check for the From: header line and add a Comments: line      }
    if StrLIComp(Msg, 'From:', 5) = 0 then
        StrCat(Msg, #13#10 + 'Comments: This is a test');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSmtpTestForm.ClearDisplayButtonClick(Sender: TObject);
begin
    DisplayMemo.Clear;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSmtpTestForm.ExceptionHandler(Sender: TObject; E: Exception);
begin
    Application.ShowException(E);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{ Connect to the mail server }
procedure TSmtpTestForm.ConnectButtonClick(Sender: TObject);
begin
    SmtpClient.Host := HostEdit.Text;
    SmtpClient.Port := PortEdit.Text;
    SmtpClient.Connect;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{ Send HELO command with our local identification }
procedure TSmtpTestForm.HeloButtonClick(Sender: TObject);
begin
    SmtpClient.SignOn          := SignOnEdit.Text;
    SmtpClient.Helo;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{ Open is Connect and Helo methods combined }
procedure TSmtpTestForm.OpenButtonClick(Sender: TObject);
begin
    SmtpClient.Host   := HostEdit.Text;
    SmtpClient.Port   := PortEdit.Text;
    SmtpClient.SignOn := SignOnEdit.Text;
    SmtpClient.Open;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{ Send originator }
procedure TSmtpTestForm.MailFromButtonClick(Sender: TObject);
begin
    SmtpClient.FromName        := FromEdit.Text;
    SmtpClient.MailFrom;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{ Send recipients }
procedure TSmtpTestForm.RcptToButtonClick(Sender: TObject);
begin
    BuildRcptList;
    SmtpClient.RcptTo;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{ Send text and attached files to mail server }
procedure TSmtpTestForm.DataButtonClick(Sender: TObject);
begin
    BuildRcptList;
    SmtpClient.HdrFrom         := FromEdit.Text;
    SmtpClient.HdrTo           := ToEdit.Text;
    SmtpClient.HdrSubject      := SubjectEdit.Text;
    SmtpClient.EmailFiles      := FileAttachMemo.Lines;
    SmtpClient.Data;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{ MailFrom, RcptTo and Data methods combined }
procedure TSmtpTestForm.MailButtonClick(Sender: TObject);
begin
    BuildRcptList;
    SmtpClient.HdrFrom         := FromEdit.Text;
    SmtpClient.HdrTo           := ToEdit.Text;
    SmtpClient.HdrSubject      := SubjectEdit.Text;
    SmtpClient.SignOn          := SignOnEdit.Text;
    SmtpClient.FromName        := FromEdit.Text;
    SmtpClient.EmailFiles      := FileAttachMemo.Lines;
    SmtpClient.Host            := HostEdit.Text;
    SmtpClient.Port            := PortEdit.Text;
    SmtpClient.Mail;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSmtpTestForm.QuitButtonClick(Sender: TObject);
begin
    SmtpClient.Quit;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSmtpTestForm.AbortButtonClick(Sender: TObject);
begin
    SmtpClient.Abort;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSmtpTestForm.SmtpClientRequestDone(Sender: TObject;
  RqType: TSmtpRequest; Error: Word);
begin
    DisplayMemo.Lines.Add('RequestDone Rq=' + IntToStr(Ord(RqType)) +
                          ' Error='+ IntToStr(Error));
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一卡二卡在线| 欧美mv日韩mv国产网站| 丁香婷婷综合五月| 加勒比av一区二区| 国产精品亚洲午夜一区二区三区| 狠狠色狠狠色综合| 成人免费观看视频| av不卡免费在线观看| 99精品桃花视频在线观看| 色网综合在线观看| 欧美日韩成人综合天天影院| 日韩一区和二区| 久久夜色精品一区| 亚洲欧洲精品天堂一级| 亚洲一区二区三区美女| 日本不卡在线视频| 国产精品影视网| 91免费观看国产| 777午夜精品视频在线播放| 欧美精品一区二区三区视频| 久久久久国产免费免费 | 欧美一区二区三区视频在线| 日韩欧美在线影院| 国产精品美女一区二区在线观看| 亚洲日本青草视频在线怡红院| 亚洲黄色av一区| 蜜桃一区二区三区在线| 99免费精品视频| 欧美视频在线观看一区| 久久久影院官网| 亚洲18色成人| 成人高清av在线| 91精品福利在线一区二区三区| 久久影院午夜论| 亚洲第一成年网| 不卡av在线网| 欧美va亚洲va香蕉在线| 亚洲理论在线观看| 久久99精品视频| 欧美色视频一区| 国产精品女同互慰在线看| 日韩精品电影一区亚洲| 91丝袜呻吟高潮美腿白嫩在线观看| 精品免费一区二区三区| 亚洲午夜久久久| 成人高清在线视频| 2022国产精品视频| 秋霞电影网一区二区| 欧美在线不卡一区| 国产精品麻豆久久久| 国产尤物一区二区在线| 欧美美女bb生活片| 夜夜精品浪潮av一区二区三区| 国产麻豆精品一区二区| 欧美三级电影在线观看| 亚洲三级免费电影| 不卡的av在线| 日本一区二区三区免费乱视频| 日本中文字幕不卡| 欧美一区二区精美| 日日夜夜精品视频天天综合网| 欧美亚洲禁片免费| 亚洲电影视频在线| 欧美群妇大交群中文字幕| 亚洲另类色综合网站| 日本黄色一区二区| 亚洲欧美电影一区二区| 一本大道综合伊人精品热热| 成人欧美一区二区三区小说| 99久久国产综合精品女不卡| 中文字幕在线观看一区| 91一区二区三区在线播放| 亚洲麻豆国产自偷在线| 91国偷自产一区二区三区成为亚洲经典 | 国产成人av资源| 精品欧美乱码久久久久久1区2区| 蜜臀av性久久久久蜜臀aⅴ| 日韩三级中文字幕| 精品一区二区三区影院在线午夜| 日韩欧美一二三| 国产乱码精品一区二区三区av | 韩国视频一区二区| 久久久激情视频| 国产91色综合久久免费分享| 国产亚洲欧美日韩俺去了| 成人免费电影视频| 欧美一区国产二区| 亚洲一区二区av在线| 欧美日韩亚洲综合一区二区三区| 亚洲第一精品在线| 精品日韩一区二区三区免费视频| 国产麻豆成人精品| 亚洲欧美日韩在线不卡| 欧美日韩精品久久久| 美女精品一区二区| 日本一区二区三区四区在线视频| 99这里都是精品| 天天综合日日夜夜精品| 久久伊99综合婷婷久久伊| av中文字幕亚洲| 日本在线不卡视频| 国产欧美一区二区精品性| 色悠久久久久综合欧美99| 亚洲午夜久久久久中文字幕久| 欧美刺激午夜性久久久久久久 | 亚洲大尺度视频在线观看| 2023国产一二三区日本精品2022| 成人夜色视频网站在线观看| 亚洲一区在线观看网站| 精品国产123| 欧美综合一区二区| 国产一区二区女| 亚洲成人福利片| 国产欧美综合在线| 欧美日韩国产精品自在自线| 国产美女精品在线| 偷拍一区二区三区四区| 国产精品久久福利| 精品伦理精品一区| 在线免费av一区| 成人一区二区三区中文字幕| 免费一级欧美片在线观看| 亚洲黄色av一区| 亚洲国产高清aⅴ视频| 欧美成人高清电影在线| 欧美精品视频www在线观看| 99麻豆久久久国产精品免费优播| 国产一区二区毛片| 日韩av一级电影| 洋洋av久久久久久久一区| 中文字幕第一页久久| 欧美大片拔萝卜| 欧美午夜一区二区三区免费大片| 成人久久久精品乱码一区二区三区| 久久精品国产精品青草| 三级一区在线视频先锋| 亚洲综合精品自拍| 亚洲人成7777| 亚洲欧洲无码一区二区三区| 国产精品欧美一级免费| 欧美激情在线观看视频免费| 久久这里只有精品视频网| 欧美高清激情brazzers| 欧美性大战久久| 欧美网站大全在线观看| 欧美午夜电影在线播放| 欧美吞精做爰啪啪高潮| 欧美性感一类影片在线播放| 欧美视频中文字幕| 欧美另类久久久品| 欧美精品三级日韩久久| 欧美一级二级在线观看| 91精品国产综合久久精品性色| 欧美日韩国产中文| 欧美日本一区二区| 欧美一区二区日韩| 欧美精品一区二区三区蜜桃视频| wwwwww.欧美系列| 国产目拍亚洲精品99久久精品| 欧美国产精品专区| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲柠檬福利资源导航| 亚洲精品视频一区| 视频一区在线播放| 精品一区二区在线看| 国产精品资源网站| 91免费视频网址| 91精品国产一区二区| 久久久久久久久99精品| 亚洲色图都市小说| 日韩av不卡一区二区| 国产精品18久久久久久久网站| 99久久伊人久久99| 欧亚一区二区三区| 精品国产91乱码一区二区三区 | 91精品国产综合久久久久久漫画| 日韩精品一区国产麻豆| 国产精品美女久久久久久久久 | 欧美国产精品中文字幕| 樱花草国产18久久久久| 精品一区精品二区高清| 99久久er热在这里只有精品15| 欧美日韩一区不卡| 国产亚洲欧美激情| 亚洲二区视频在线| 高清在线观看日韩| 3atv在线一区二区三区| 中文字幕欧美国产| 日本欧美一区二区| 一本一道综合狠狠老| 精品少妇一区二区三区在线视频| 亚洲精品久久久蜜桃| 国产精品66部| 制服.丝袜.亚洲.中文.综合| 欧美国产精品一区| 久久99热国产| 欧美伊人精品成人久久综合97| 久久精品视频网| 蜜桃免费网站一区二区三区| 欧洲亚洲精品在线|