您的位置:首页 > 编程语言 > Delphi

Delphi2009的Indy全接触之SMTP篇

2008-10-15 15:07 357 查看
使用TIdSMTP及TIdMessage控件实现邮件发送功能。
如下图所示新建工程:



后台代码如下:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdMessage, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient, IdSMTPBase,
IdSMTP;

type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Edit4: TEdit;
ListBox1: TListBox;
Button1: TButton;
IdSMTP1: TIdSMTP;
IdMessage1: TIdMessage;
memoMsg: TMemo;
Label5: TLabel;
Edit5: TEdit;
Label6: TLabel;
Edit6: TEdit;
procedure FormCreate(Sender: TObject);
procedure IdSMTP1Status(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: string);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure Status(AMsg: string);
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

uses INIFiles;

procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Enabled := False;
try
with IdMessage1 do begin
Clear;
From.Text := Trim(Edit1.Text);
Recipients.Add.Text := Trim(Edit2.Text);
Subject := Trim(Edit5.Text);
Body.Assign(memoMsg.Lines);
end;
with IdSMTP1 do begin
Host := Trim(Edit6.Text);
Username := Edit3.Text;
Password := Edit4.Text;
Connect; try
Send(IdMessage1);
finally
Disconnect;
end;
end;
Status('Completed');
finally
Button1.Enabled := True;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
LINIFile: string;
begin
LINIFile := 'c:/SMTP.ini';
if FileExists(LINIFile) then begin
with TINIFile.Create(LINIFile) do
try
Edit1.Text := ReadString('Main', 'From', '');
Edit2.Text := ReadString('Main', 'To', '');
Edit3.Text := ReadString('Main', 'UserName', '');
Edit4.Text := ReadString('Main', 'Password', '');
Edit5.Text := ReadString('Main', 'Subject', '');
Edit6.Text := ReadString('Main', 'SMTP Server', '');
memoMsg.Lines.Text := ReadString('Main', 'Message', '');
finally
Free;
end;
end;
end;

procedure TForm1.IdSMTP1Status(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: string);
begin
Status(AStatusText);
end;

procedure TForm1.Status(AMsg: string);
begin
ListBox1.ItemIndex := ListBox1.Items.Add(AMsg);

Application.ProcessMessages;
Application.ProcessMessages;
Application.ProcessMessages;
end;

end.
在C盘根目录下新建文件:SMTP.ini
文件内容格式如下:
[Main]
From=XXXXXXXX@sina.com
To=ZZZZZZZZ@hotmail.com
Subject=Test
SMTP Server=smtp.sina.com
Message=I Miss You!
UserName=XXXXXXXX
Password=YYYYYYYY
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: