从此流程可以看出,客户向 smtp 服务器发出邮件后,由 smtp 服务器负责向收件人发出最终信件,这个过
程由服务器完成,客户无需操心。客户所关心的只是怎样将邮件发送到 smtp 服务器上去。POP3 更简单了,
只需要正确登录到 POP3 服务器上,再下载需要的邮件即可。
用 Indy 创建收发电子邮件的例子:
1、创建工程,在窗体中加入 IdSMTP1、IdMessage1 和 IdPOP31(Indy 控件标签组)控件各一个。
2、设置 IdSMTP1.Host := 'SMTP.163.com';(我用的是 163 检试,具体也可选择其它服务器) IdSM
TP1.Username := 'caoyan528';(此处即表示邮箱的帐号名,例如邮箱为:aaaaaa@163.com,则 Username
即为 aaaaaa) IdSMTP1.Password := 'XXXXXXXX';(此处即为邮箱的密码,如 aaaaaa@163.com 邮箱密码为
123456,则 Password 即为 123456)。
3、设置 IdMessage1.From.Address := 'caoyan_528@163.com';(注意,此处的邮箱地址应在 smtp.16
3.com 中存在且就为以上设置的 Username),IdMessage1.Recipients.EMailAddresses := ‘caoyan528@g
mail.com’(此处表示收件人地址,只要是任何一个存在的邮箱地址即可) IdMessage1.Subject:= '第一个邮
件客户端';(主题)具体源代码如下:
procedure TForm1.Button4Click(Sender: TObject);
var
filename : String;
tmpEMailItem : TIdEMailAddressItem;
// tmpEmailAdd : TIdEmailAddressList;
begin
try
IdSMTP1.Host := 'SMTP.163.com';
IdSMTP1.AuthenticationType := atLogin; //保证登录模式为 Login
IdSMTP1.Username := 'caoyan_528';
IdSMTP1.Password := 'XXXXXX';
filename := 'E:\邮件发送程序3-12-22_253_04.jpg'; //需要添加的附件文件
TIdAttachment.Create(IdMessage1.MessageParts,filename); //添加附件
IdMessage1.From.Address := 'caoyan_528@163.com';
IdMessage1.Recipients.EMailAddresses:='caoyan528@gmail.com';
tmpEMailItem := IdMessage1.Recipients.Add; //添加一个地址列表
tmpEMailItem.Text := 'caoyan528@gmail.com'; //写一个收件人
idMessage1.BccList.Add.Text := 'caoyan_528@yahoo.com.cn'; //书写多个目标地址,实现群发
idMessage1.BccList.Add.Text := 'caoyan_528@163.com'; //书写多个目标地址,实现群发
IdMessage1.Subject:= '第一个邮件客户端';
IdMessage1.Body.Text := Memo1.Text; //此处为邮件正文
评论2