在Delphi的Form上,放置IdSMTP、IdMessage、OpenDialog三个主要的组件,这三个组件是这次邮件发送程序的核心组件,大部分功能都由它们来实现,其它还有一些Label、LabeledEdit和Memo组件,具体的布局如下图所示:
(图一)
本程序的实现思路是这样的,邮件的发送功能由Indy组件来实现,(笔者注:这是一套十分著名的用来开发网络程序的组件,从Delphi6开始,这套组件成为Delphi内置的组件,它的最新版本可以到http://www.nevrona.com/indy/上去下载),IdSMTP组件用来实现与邮件发送服务器(即SMTP服务器)的联接与通信,而IdMessage组件则用来对邮件内容进行存储和编码。当邮件写好后,数据被编码并“填充”进IdMessage,然后通过IdSMTP与SMTP服务器进行联接和通信。
邮件发送的主要代码如下:
procedure TMailerForm.btnSendMailClick(Sender: TObject);
begin
StatusMemo.Clear;
//设置SMTP
SMTP.Host := ledHost.Text; //具体使用的SMTP,可以到你申请的邮箱所在的网站中去找
SMTP.Port := 25;
//设置邮件内容
MailMessage.From.Address := ledFrom.Text;
MailMessage.Recipients.EMailAddresses := ledTo.Text + , + ledCC.Text;
MailMessage.Subject := ledSubject.Text;
MailMessage.Body.Text := Body.Text;
if FileExists(ledAttachment.Text) then
TIdAttachment.Create(MailMessage.MessageParts,
ledAttachment.Text);
//发送邮件
try
try
SMTP.Connect(1000);
SMTP.Send(MailMessage);
except on E:Exception do
StatusMemo.Lines.Insert(0, ERROR: + E.Message);
end;
finally
if SMTP.Connected then
SMTP.Disconnect;
end;
end;
//添加附件代码
procedure TMailerForm.btnAttachmentClick(Sender: TObject);
begin
if AttachmentDialog.Execute then
ledAttachment.Text := AttachmentDialog.FileName;
end;
邮件发送程序的应用十分的广泛,随着宽带的普及,“时刻在线”成为了可能,为你的应用软件加入邮件收发功能将为你的用户带来不少的方便。在软件开发中更多的为用户着想,才能使你的软件真正受到大众的欢迎!
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/delphi/)