建立一个FORM,分别各添加一个 IdSMTP1,IdMessage1。
再添加Edit1、Edit2... Edit8 和对应的label1、label2...label8。
再添加一个memo1。
代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, IdMessage, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP;
type
TForm1 = class(TForm)
IdSMTP1: TIdSMTP;
IdMessage1: TIdMessage;
BitBtn1: TBitBtn;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Edit4: TEdit;
Label5: TLabel;
Edit5: TEdit;
Label6: TLabel;
Edit6: TEdit;
Label7: TLabel;
Edit7: TEdit;
Label8: TLabel;
Edit8: TEdit;
Memo1: TMemo;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
try
IdSMTP1.AuthenticationType:=atLogin; //设置登陆类型
IdSMTP1.Username := Edit2.Text; //服务器上的用户名
IdSMTP1.Password := Edit3.Text; //服务器上的密码
IdSMTP1.Host := Edit1.Text; // 服务器SMTP地址 如:smtp.163.com
IdSMTP1.Port :=strtoint(Edit4.text); // 服务器端口25;
IdSMTP1.Connect;
except
Showmessage('连接失败,请重试!');
Exit; //连接失败 的话 退出该执行过程
end;
IdMessage1.ContentType:= 'text/html'; //注意此句最好加上,如果body中是html语句,那么这个必须要。
IdMessage1.Body.Add(Memo1.Lines.Text); //可以是文本也可以是html
IdMessage1.From.address:=Edit8.Text; // 发件人地址
IdMessage1.Recipients.EMailAddresses:=Edit7.Text; // 收信人地址
IdMessage1.Subject:=Edit5.Text; // 邮件标题
IdMessage1.Priority:=mphigh; //优先级,mphigh为最高级。
try
IdSMTP1.Authenticate; //这句必须加才能发邮件
IdSMTP1.Send(IdMessage1); //发送邮件
except
Showmessage('发送失败,请重试!');
IdSMTP1.Disconnect;
Exit; //发送失败 的话 退出该执行过程
end ;
IdSMTP1.Disconnect;
Showmessage('发送成功,恭喜!');
end;
end.