1.界面设计如下:
2.两个事件:(1)发送按钮单击事件(2)控件HtmlSmtpCli的HtmlSmtpCliRequestDone事件
(1)发送事件:代码如下:
//******************给以下控件属性相应的值**************
// 发送纯文本
//HtmlSmtpCli.PlainText:=
//发送网页文本(传送的文本)
//HtmlSmtpCli.HtmlText:=
//发送邮件中的图片 (传送的是地址)
//HtmlSmtpCli.EmailImage:=
//发送邮件中的文件(传递的是文件的路径)
//HtmlSmtpCli.Emailfiles:=
//********************************************************
//******************从界面上给SMTP赋值********************
HtmlSmtpCli.Host:=HostEdit.Text;//发送邮件SMTP服务器
HtmlSmtpCli.SignOn:= SignOnEdit.Text; //标记发送人否则为匿名邮件
HtmlSmtpCli.Port:=PortEdit.Text;// 发送邮件的端口
HtmlSmtpCli.FromName:=Fromedit.Text;//发送邮箱的真正地址,不指定为匿名发送(该参数不指定为匿名发送)
HtmlSmtpCli.HdrFrom:=Fromedit.Text;//SMTP发送邮件的显示邮箱 (该参数不指定发送不成功)
HtmlSmtpCli.HdrTo:=ToEdit.Text;//主机接收邮箱的地址
HtmlSmtpCli.HdrSubject:=SubjectEdit.Text;//邮件的发送主题
HtmlSmtpCli.Username:=UserNameedit.Text;//发送邮件的账户名称
HtmlSmtpCli.Password:=Passwordedit.Text;//发送邮件的账户登陆密码
//HtmlSmtpCli.hd
//*********************************************************
//检查相关字段
if (HtmlSmtpCli.Username<>'') and (HtmlSmtpCli.Password<>'') then
HtmlSmtpCli.AuthType:=smtpAuthAutoSelect//AuthType是定义的一个结构体
else
HtmlSmtpCli.AuthType:=smtpAuthNone;
HtmlSmtpCli.RcptName.Clear;//接收方的名称清空
HtmlSmtpCli.RcptNameAdd(ToEdit.Text,'',''); //接收方的邮箱地址,抄送,隐藏抄送
HtmlSmtpCli.Connect;
(2)控件HtmlSmtpCli的HtmlSmtpCliRequestDone事件
case RqType of
smtpConnect: begin
if HtmlSmtpCli.AuthType = smtpAuthNone then
HtmlSmtpCli.Helo
else
HtmlSmtpCli.Ehlo;
end;
smtpHelo: HtmlSmtpCli.MailFrom;
smtpEhlo: HtmlSmtpCli.Auth;
smtpAuth: HtmlSmtpCli.MailFrom;
smtpMailFrom: HtmlSmtpCli.RcptTo;
smtpRcptTo: HtmlSmtpCli.Data;
smtpData: HtmlSmtpCli.Quit;
smtpQuit: begin
end;
end;
3.对于抄送,暗送的参数,可以自己研究一下,可以参考以下文档。区分抄送与暗送的区别
http://wenku.baidu.com/view/6940cd1a6bd97f192279e94e.html